【问题标题】:Read only one line of Integers from a file从文件中只读取一行整数
【发布时间】:2020-06-13 15:38:26
【问题描述】:

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

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

【问题讨论】:

  • 您需要重置每一行的列。否则,您将列增加到 3200。
  • 谢谢,这就是缺少的。现在可以使用了。

标签: java int java.util.scanner


【解决方案1】:

您还可以稍微简化代码。您可以继续一个一个地读取整数。

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


【讨论】:

  • 我也想要行数和列数。
【解决方案2】:

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

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

【讨论】:

  • 你只需要转换对象,例如Integer.parseInt(line);
  • 这不是强制转换,它是从 String 到 int 的转换。而且这不是必需的,因为 Scanner 会为您完成。
  • Bufferreader 允许相同,只需要执行下一个 while ( (line =bufferReader.read()) != 0 ) {
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-18
  • 1970-01-01
  • 1970-01-01
  • 2010-12-26
  • 2013-05-02
相关资源
最近更新 更多