java.util.Scanner问题:在一定数量的字符后停止读取?

时间:2013-11-08 01:05:08

标签: java java.util.scanner java-io

我正在使用Scanner读取大约700行文本(每行一个单词),并将每行/单词存储为使用预定的800个元素大小构造的String ArrayList的元素。但是,在Eclipse的变量模式下进行调试时,我注意到ArrayList的后面的元素根本没有初始化 - 看起来Scanner在一个单词的中间,在随机行上停止了。

  • 分隔符不是问题(我使用和不使用“\ n”分隔符初始化Scanner,没有区别)或文本内容本身 - 当我切换单词的顺序时,Scanner停止阅读完全相同数量的字符。
  • 文本文件本身不是很大 - 只有6KB。
  • 我尝试从next()切换到nextLine(),没有问题

我正在尝试使用资源:

try (Scanner stopwordImport = new Scanner(new File(stopwordFile))) {
        while (stopwordImport.hasNext()) {
            stopWords.add(stopwordImport.nextLine());
        }

...所以扫描仪应该关闭。

我很茫然......出了什么问题?提前谢谢。

1 个答案:

答案 0 :(得分:0)

尝试使用 FileReader 而不是 File,这样您就不会遇到缓冲区问题。我遇到了同样的问题,这对我有用。