我有几个文件(实际上它们也是保存在Ubuntu上的Eclipse中的Java源文件),需要逐行读取和处理。 我注意到其中一个文件无法读取。 我使用的代码如下:
try (Scanner scanner = new Scanner(file)) {
while (scanner.hasNextLine() ) {
builder.append(scanner.nextLine()).append("\n");
}
} catch (FileNotFoundException ex) {
System.out.println("Error");
}
我之前检查过文件是否存在,确实存在。我甚至可以将其重命名。但是我无法读取一行内容。hasNextLine返回false(我甚至尝试了hasNext)。
最后,我查看了文件的内容,并发现有一个不同的字符(它在java文件的注释部分中)。该字符如下:
¸
当我删除这个字符后,我可以正常读取文件。然而这并不可接受。有什么办法可以让我即使在文件中存在这个字符的情况下也能读取文件吗?
Scanner scanner = new Scanner(file, "UTF-8")
。 - guido