我正在尝试使用 Scanner 类来解析文本文件。但事实证明,如果文件包含俄语单词,扫描仪根本无法读取该文件。scanner.hasNextLine() 在第一次调用时返回 false。这是 Scanner 类的正常行为吗?我可以做些什么来解决这个问题吗?
问问题
307 次
1 回答
1
要读取包含另一种编码的文本,您应该使用带有附加参数“encoding”的 Scanner 的构造函数。例如,如果包含俄罗斯符号的文件采用 UTF-8 编码,请尝试以下操作:
String path = ... // full path of file
Scanner sc = new Scanner(new FileInputStream(path), "UTF-8");
//read file line by line
while (sc.hasNextLine()){
//read one line
String s = sc.nextLine();
//do something with line
System.out.println(s);
}
于 2014-11-12T08:42:51.237 回答