我有一个文件,每行都有一个不同的整数。例如:
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有相同的代码。
答案 0 :(得分:3)
除非您的文件路径是以空格分隔的数字,否则您将无法获得任何数字。 Scanner
was scanning the file path(作为String
),而不是文件。
Scanner sc = new Scanner(new FileInputStream(args[0]));
而且仅供参考,如果你使用List
而不是两次阅读文件会更清楚。