具有分隔符的扫描仪" \\ Z"第一次打电话时没有下一个元素

时间:2015-03-14 18:58:09

标签: 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(循环的最后一次迭代)

1 个答案:

答案 0 :(得分:0)

可能是区域设置问题。 试试export LC_ALL=en_US.utf-8