我用Java编写一些代码来扫描.txt文件。文件中的每一行包含两个标记,并且只有大约7行数据。
我的目标是使用while循环扫描每一行,将标记存储在HashMap中,当扫描程序到达文档的末尾时,我希望while循环终止。以下是我正在使用的代码片段:
while ((line = b.readLine()) != null) {
s = new Scanner(line);
String fileName = s.next();
String source = s.next();
sourceMap.put(fileName, source);
}
这是我以前做过很多次的事情,但是现在有一些问题与while循环终止。 while循环即使在最后一个'之后仍然继续运行。线已被阅读。当扫描程序尝试读取标记时,将返回java.util.NoSuchElementException。
从使用调试器我可以看到紧跟在' final'之后的那一行。代码行读作:""
我相信这是一个空字符串,但我不确定这是否与null
行不同。我试图为条件while (line != "")
添加代码,但是这不会导致while循环终止。
之前有没有人遇到类似的问题,如果有的话,你是如何克服它们的?
编辑:现在已经解决了。在' final'之后有一行空字符串。 .txt文件中的行。更正后的代码如下:
while ((line != null) && (!line.isEmpty())) {
s = new Scanner(line);
String fileName = s.next();
String source = s.next();
sourceMap.put(fileName, source);
line = b.readLine();
}