使用导入文件的Java循环

时间:2013-02-07 22:03:12

标签: java loops

当导入的文件包含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();
}

3 个答案:

答案 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);
}