如何使用流读取文件?

时间:2019-03-09 10:45:15

标签: java java-8 stream

我正在使用Java 8进行作业,我不知道如何使用流读取文件。我尝试使用这种方法,但它给了我一个错误消息:“线程“ main”中的异常” java.lang.Error:未解决的编译问题:     对于路径类型,未定义(String)的方法 在vb2018.Vb2018.main(Vb2018.java:17)“

package vb2018;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.stream.Stream;

public class Vb2018 {

    public static void main(String[] args) throws IOException {

        Stream<String> lines = Files.lines(Path.of("vb2018.txt")).map(Helyszin::new).toArray(Helyszin[]::new);

    }

    static class Helyszin {
        String city;
        String name1;
        String name2;
        int chairs;

        public Helyszin(String line) {
            String[] split = line.split(";");

            this.city = city;
            this.name1 = name1;
            this.name2 = name2;
            this.chairs = chairs;
        }

    }

}

1 个答案:

答案 0 :(得分:0)

您已经配置了编辑器(和编译器),使其认为这是一个Java 11项目。 Path.of()方法确实存在;但不是在Java 8中,它是在后来添加的(它是Java 11的一部分)。通常,您只需使用java即可完成此操作。如果您已安装任何Java11 JDK,则所有内容都将默认为该值。

但是随后您尝试在java8上运行您的应用程序,但失败了,因为那里不存在Path.of()

您应该将编辑器对版本的理解与正在使用它进行编译和运行的所有内容保持同步。因此,要么使用java11运行您的东西,要么告诉您的编辑器jdk8安装的位置,将项目配置为将JDK与Java 1.8的源级别和目标级别一起使用,并且如果还从命令行进行编译,则使确保在那里也使用java8。