使用列表读取文件时获取所有空值

时间:2017-06-08 08:06:40

标签: java file arraylist null

嗨,阅读文件有问题。我的文件内容是:

Alcohol 0,000425 0,000385 0,00003 0,89.

它表明所有变量都等于null。 我在这段代码中找不到错误。过滤器或foreach循环可能是错误的。

public class FileReading  {
    List<Double> Mass1 = new ArrayList<>();
    List<Double> Mass2 = new ArrayList<>();
    List <Double> Voulume = new ArrayList<>();
    List<Double> Height = new ArrayList<>(); 

    void Reading(String name,int sk) throws IOException{ 
        List<String> Material= new ArrayList<>();
        Material = Files.lines(Paths.get("D:/Desktop/NewFolder/26laboratorinis.txt")).
                filter(s->s.contains(name))
                .map(s ->s.substring(sk)).collect(Collectors.toList());

        for(String number : Material){

            String[] l = number.split(" ");
            Mass1.add(Double.parseDouble(l[0]));
            Mass2.add(Double.parseDouble(l[1]));
            Volume.add(Double.parseDouble(l[2]));
            Height.add(Double.parseDouble(l[3]));
        }   

    }
    public void setMass1(List<Double> PAM) {
        this.Mass1 = PAM;
    }

    public void setMass2(List<Double> TAM) {
        this.Mass2 = TAM;
    }
    public void setVolume(List<Double> T) {
        this.Volume =T;
    }

    public void setHeight(List<Double> VSA) {
        this.Height = VSA;
    }
    public List<Double> getMass1() {
        return Mass1;
    }
    public List<Double> getMass2() {
        return Mass2;
    }
    public List<Double> getVolume() {
        return Volume;
    }
    public List<Double> getHeight() {
        return Height;
    }

}

1 个答案:

答案 0 :(得分:0)

调用它时,您将哪些值传递给Reading方法?

反正:

Files.lines - 从文件中读取所有行作为流。 之后,您将每行放在filter方法中。因此,如果行没有包含您的参数 name ,那么它只会&#34;扔掉&#34;这条线。
在该方法map之后,将所有过滤后的行转换为s.substring(sk)
最后collect方法将您的流转换为List。

所以,也许你传递的名字并不是你文档任何一行的内容,这就是为什么你会得到空的。