java将InputStream作为输入的对象方法转换为数组以进行打印
我有一个方法来读取一个整数数组,它是一个类,输入是InputStream。我尝试使用scanner,但我一直在填充数组并创建return语句以正确的方式输出它。我真的很想知道转换应该如何工作这是我第一次面对这种问题,因为我对Java非常陌生,所以请对我放松点。到目前为止我得到的是:
public class ArrayReader {
public static IntegerArray readIntArray(InputStream input) {
Scanner scanner = new Scanner(input);
scanner.nextInt();
int size = 0;
int[] iarr;
while(scanner.hasNextInt()) {
size++;
scanner.nextLine();
}
}
}
import java.util.Arrays;
public final class IntegerArray {
private int[] a;
public IntegerArray(int[] a) {
this.a = a;
}
public int length() {
return a.length;
}
public int getElementAt(int i) {
return a[i];
}
public int sum() {
int sum = 0;
for(int i: a) {
sum += i;
}
return sum;
}
public double average() {
int i, sum = 0, armean;
for(i = 0; i < a.length; i++) {
sum = sum + a[i];
}
armean = sum / i;
return armean;
}
public IntegerArray getSorted() {
int[] b = a.clone();
Arrays.sort(b);
return new IntegerArray(b);
}
public IntegerArray contact(IntegerArray ia) {
int[] newA = new int[a.length + ia.length()];
for(int i = 0; i < ia.a.length; i++) {
newA[i] = a[i];
}
for(int j = 0; j < ia.a.length; j++) {
newA[j + a.length] = ia.a[j];
}
return new IntegerArray(newA);
}
@Override
public String toString() {
return a.toString();
}
}
# 1 楼答案
使用Java 8,您可以这样编写方法
在当前目录中创建一个文件名为num.txt的文本文件,在其中输入一些数字,运行代码并享受输出
编辑:
解释这句话
IntegerArray类声明了一个接受本机int数组的构造函数,如下所示
但是读取的数字存储在
List<Integer>
对象中,因此该列表需要转换为int[]
,这就是这是需要的
它基本上是从
intList
创建一个流,然后mapToInt(Integer::intValue)
方法将整数对象流转换为本机整数流,最终使用toArray()
方法收集为int[]
,这是我们根据构造器需要获得的如果您使用这样的包装整数类声明了构造函数
那么我们就可以通过写这个来实现
希望有帮助
# 2 楼答案
虽然不是最好的,但很管用