嗨,阅读文件有问题。我的文件内容是:
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;
}
}
答案 0 :(得分:0)
调用它时,您将哪些值传递给Reading方法?
反正:
Files.lines
- 从文件中读取所有行作为流。
之后,您将每行放在filter
方法中。因此,如果行没有包含您的参数 name ,那么它只会&#34;扔掉&#34;这条线。
在该方法map
之后,将所有过滤后的行转换为s.substring(sk)
。
最后collect
方法将您的流转换为List。
所以,也许你传递的名字并不是你文档任何一行的内容,这就是为什么你会得到空的。