美好的一天!我使用这部分代码
File file = new File(someFilePath);
Scanner sc;
try {
sc = new Scanner(file);
} catch (FileNotFoundException e) {
return "";
}
sc.useDelimiter("\\Z");
System.out.println("file : " + file.getName() + " " + sc.hasNext() + " " + sc.delimiter());
String fileString = sc.next();
我在这段代码的最后一行收到错误Exception in thread "main"java.util.NoSuchElementException
。
输出是 file : 758279215_profile.txt false\Z
,因此分隔符是正确的,文件存在(并且它不是空的,我已经检查过),但由于某种原因它没有下一个元素(正如我认为下一个元素应该是并且它应该是文件中的整个文本)。出了什么问题以及如何解决?谢谢!
添加:
BufferedReader br = new BufferedReader(new FileReader(file));
String line = "";
while (line != null) {
try {
line = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(line);
}
返回文件内容(内容编辑为 JSON 文本的文本文件)和 null(循环的最后一次迭代)
最佳答案
这可能是区域设置问题。
尝试导出 LC_ALL=en_US.utf-8
关于java - 带有分隔符 "\\Z"的扫描器在第一次调用时没有下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29052931/