【问题标题】:BufferedReader only reading the first few charactersBufferedReader 只读取前几个字符
【发布时间】:2017-11-26 00:35:32
【问题描述】:

所以我有一个正在读取的单行文本文件,但实际上只读取了前几个字符。我的阅读代码如下:

try {
 BufferedReader freqReader = new BufferedReader(new FileReader(letterFrequency));
     String temp = freqReader.readLine();
     System.out.println(temp);
} catch (IOException e) {
    System.out.println("IO Exception");
}

其中 letterFrequency 已在构造函数中分配给文件 frequency.txt。这包含单数行:

e 12.7t 9.0a 8.167o 7.7i 7.3n 6.75s 6.33r 6.0h 6.094d 4.253l 4.025u 2.758c 2.782m 2.406f 2.228y 1.974w 2.360g 2.015p 1.929b 1.492v 0.978k 0.772x 0.150q 0.1j 0.153z 0.074

但是只有 e 12.7 被打印出来,我不知道为什么。任何帮助是极大的赞赏!

【问题讨论】:

  • 通常你会在一个while循环中阅读,直到找不到更多的文本,完成后你还需要关闭阅读器,因为这会刷新流。
  • 好的,但是在这里有一个while循环应该很重要,因为它都在一行上,对吧?我一定会关闭阅读器。
  • 关闭/刷新那个阅读器——会发生什么?
  • 您绝对确定文件是单行吗?如果文件使用 Unix 行结尾并且您在 Window 系统上显示它,则换行符不会显示为换行符。
  • 您只阅读了一行,您对文件中的内容有误。我不知道这些关于刷新输入流的废话是什么。 @HovercraftFullOfEels

标签: java file file-io bufferedreader filereader


【解决方案1】:

事实证明@Jim Garrison 在他的评论中是正确的,它使用了在我的系统上未正确显示的 Unix 行尾,因此我使用了读取多行的不同代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    相关资源
    最近更新 更多