这是主要方法:
public static void main(String[] args) throws IOException{
int [] array = new int [1000];
int[] getArray=FileArrayProvider(array);
for (int y = 0; y < getArray.length; ++y)
{
System.out.print(array[y] + " ");
}
我想通过&#39;阵列&#39;进入下面的方法&#39; FileArrayProvider:
public static int[] FileArrayProvider(int[] array1) throws IOException{
File file = new File("RandomNumbers.txt");
FileReader inputFile = new FileReader(file);
BufferedReader in = new BufferedReader(inputFile);
{String s =in.readLine();
System.out.println("Array before sorting: ");
while(s!=null)
{int k = 0;
array1[k] = Integer.parseInt(s);
System.out.print(array1[k]+" ");
s = in.readLine();
}
in.close();
}
return array1;
}
问题是数组没有传回主方法。它在FileArrayprovider&#39;中正确打印。方法,但只是将数组的最后一个值传递回main方法,并在数组中填充除此之外的所有零。任何提示或建议将非常感谢解决这个问题!谢谢
答案 0 :(得分:0)
因为在main()
中打印数组的内部for循环
System.out.print(array[y] + " ");
您正在打印array[y]
而不打印新值
getArray
答案 1 :(得分:0)
我注意到的一件事是,在FileArrayProvider()
方法中,int k
永远不会增加,基本上只会更改array1
的第一个值。将其更改为此,看看是否有效。
String s =in.readLine();
System.out.println("Array before sorting: ");
int k = 0;
while(s!=null)
{
array1[k] = Integer.parseInt(s);
System.out.print(array1[k]+" ");
s = in.readLine();
k++;
}