java - 带有分隔符 "\\Z"的扫描器在第一次调用时没有下一个元素

标签 java input delimiter

美好的一天!我使用这部分代码

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/

相关文章:

java - 我怎样才能写一个 Controller 而不把它变成上帝对象?

java - 如何从 jersey api 客户端调用中追踪整个 GET 请求

C++控制台游戏输入&&刷新函数

Java/Selenium WebDriver : How to get user input and insert it in to a text field?

postgresql - 将 csv 文件导入 psql 数据库

java - Spring:关闭 session 信息

java - 如何使用 gson 库形成 json 以循环遍历对象、列表?

javascript - 输入文本的 ng-repeat 未填充指令中的 ng-model

Java - 使用最小大小和分隔符拆分标记的正则表达式

C++ getline() 不在行尾停止?