当导入的文件包含100个或更多数字时,我的代码可以正常工作。如果文件中剩余少于100个数字,如何让循环停止?如果数字少于100,则阵列未满时会出现错误。
try {
Scanner in = new Scanner(new File(filename));
int[] aNums = new int[100];
System.out.print("Array contents: ");
int i =0;
while (i < aNums.length){
generated = in.nextInt() ;
aNums[i] = generated;
System.out.print( aNums[i] );
System.out.print(" ");
i++;
}
System.out.println(" ");
System.out.println(" ");
System.out.print("Array contents: ");
for (i = aNums.length - 1; i >= 0; i--) {
System.out.print( aNums[i] );
System.out.print(" ");
}
}
// Catch block, needed when using file input
catch (FileNotFoundException e) {
System.out.println("That file was not found. Program terminating...");
e.printStackTrace();
}
答案 0 :(得分:2)
如果文件中包含更多值,请检查扫描程序:
while (i < len && in.hasNextInt())
答案 1 :(得分:0)
试试这个
File file = new File(filename);
Scanner in = new Scanner(file);
int[] aNums = new int[file.length()];
我没试过..希望它有效
答案 2 :(得分:0)
试试这个:
List<Integer> integerList = new ArrayList<Integer>();
while(in.hasNextInt()) {
integerList.add(in.nextInt());
}
int totalNum = integerList.size();
for(int i = 0; i < 100 && totalNum - i > 100; i++) {
aNums[i] = integerList.get(i);
}