扫描程序问题“hasNextInt()”

时间:2014-04-19 16:20:51

标签: java arrays java.util.scanner

我有一个文件,每行都有一个不同的整数。例如:

5
4
3
2
1

我正在尝试编写一个程序来运行每个int,并将该int放入一个数组中。到目前为止,我的代码是:

      Scanner sc = new Scanner(args[0]);

      BufferedReader reader = new BufferedReader(new FileReader(args[0]));
      lines = 0;
      while (reader.readLine() != null) lines++;
      reader.close();

      intArray = new int[lines];

      int counter = 0;
      while(sc.hasNextInt()) {
        intArray[counter] =sc.nextInt();
        counter++;
      }

我的程序使用正确数量的索引创建数组,但它永远不会进入扫描程序的while循环。我不知道为什么会这样,因为看起来我根据这个page有相同的代码。

1 个答案:

答案 0 :(得分:3)

除非您的文件路径是以空格分隔的数字,否则您将无法获得任何数字。 Scanner was scanning the file path(作为String),而不是文件。

Scanner sc = new Scanner(new FileInputStream(args[0]));

而且仅供参考,如果你使用List而不是两次阅读文件会更清楚。