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

问题描述 投票:0回答:2

我使用 Scanner 读取大约 700 行文本(每行一个单词),并将每一行/单词存储为以预定的 800 个元素大小构造的 String ArrayList 的元素。然而,在 Eclipse 的变量模式下调试时,我注意到 ArrayList 的后面元素根本没有初始化 - 扫描仪似乎停在一个单词的中间,在一个随机行上。

  • 这不是分隔符的问题(我已经初始化了带或不带“的扫描仪” “分隔符,没有区别)或文本内容本身 - 当我切换单词顺序时,扫描仪在完全相同的字符数处停止读取。
  • 文本文件本身并不是很大——只有 6KB。
  • 我尝试过从 next() 切换到 nextLine(),也没有问题

我正在尝试使用资源:

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

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

我很茫然……出了什么问题?预先感谢。

java java.util.scanner java-io
2个回答
1
投票

尝试使用

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


0
投票

FileReader 为我工作。谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.