仅从文件中读取一行整数

Read only one line of Integers from a file

提问人: 提问时间:6/13/2020 更新时间:6/14/2020 访问量:145

问:

我正在尝试读取包含整数的文件。该文件有 40 行,每行有 80 个整数。但是,当我运行以下代码时,我得到 40 行,每行有 3200 个整数(它读取每行的整个文件)。我该如何解决这个问题。

    while(input.hasNextLine()){
        ++rows;
        Scanner colReader = new Scanner(input.nextLine());
        while(colReader.hasNextInt()){
            ++columns;
            colReader.nextInt();
        }
        colReader.close();
   }
int java.util.scanner

评论

0赞 WJS 6/13/2020
您需要重置每行的列。否则,将列递增至 3200。
0赞 6/13/2020
谢谢,这就是缺少的。它现在可以工作了。

答:

-1赞 Alejandro Gonzalez 6/13/2020 #1

因为你是重复的循环,所以如果你想读取一个文件,你可以做下一个

BufferedReader bufferReader = new BufferedReader(new FileReader(new File("")));
        int line;
        StringBuilder stringBuilder = new StringBuilder();
        while ( (line =bufferReader.read()) != 0 ) {
           // Do something
        }

评论

0赞 Alejandro Gonzalez 6/13/2020
你只需要强制转换对象,例如 Integer.parseInt(line);
0赞 WJS 6/14/2020
这不是强制转换,而是从 String 到 int 的转换。而且没有必要,因为 Scanner 会为您完成。
0赞 Alejandro Gonzalez 6/14/2020
Bufferreader 允许相同的操作,您只需要执行下一个 while ( (line =bufferReader.read()) != 0 ) {
0赞 WJS 6/13/2020 #2

您还可以在一定程度上简化代码。您可以继续逐个读取整数。

Scanner input = new Scanner(new File("f:/numbs.txt"));
while (input.hasNextInt()) {
       int v = input.nextInt();
       System.out.println(v);
}


评论

0赞 6/14/2020
我也想要行数和列数。