Java:处理从文件读取的流
在我大学的一个实验室里,我正在用Java开发一个系统,它能够存储文件中的数据(以字符串形式给出文件路径)。我试图用路径上的一系列线条来处理这个问题,但我在早期阶段就被卡住了。文件组织如下:行的不同字段用“;”分隔,每行以“P”或“D”开头。根据此参数,我将使用该行的content创建一个“Patient”对象或“Doctor”对象,随后存储在两个不同的映射(patients或Doctor)中。我做了以下工作:Java:处理从文件读取的流,java,java-8,stream,java-stream,Java,Java 8,Stream,Java Stream,在我大学的一个实验室里,我正在用Java开发一个系统,它能够存储文件中的数据(以字符串形式给出文件路径)。我试图用路径上的一系列线条来处理这个问题,但我在早期阶段就被卡住了。文件组织如下:行的不同字段用“;”分隔,每行以“P”或“D”开头。根据此参数,我将使用该行的content创建一个“Patient”对象或“Doctor”对象,随后存储在两个不同的映射(patients或Doctor)中。我做了以下工作: Path p= Paths.get(path); Stream <String&
Path p= Paths.get(path);
Stream <String> lines=Files.lines(p, StandardCharsets.UTF_8);
lines.flatMap(l->Stream.of(l.split("; ")))....
Path p=Path.get(Path);
streamlines=Files.lines(p,StandardCharsets.UTF_8);
线条平面图(l->Stream.of(l.split(“;”))。。。。
我的想法是检查行开头的单词,根据这一点,剩余的元素将用作能够创建和存储相应对象(insertPatient或insertDoctor)的方法的参数。但我一点也不知道该怎么做。我知道做同样事情的不同方法,但我真的想使用流开发解决方案,至少在读取不同行的过程中。
谢谢
Gianluca.try(streamlines=Files.lines(p,StandardCharsets.UTF_8)){//1
line.map(line->line.split(“;”)//2
.forEach(lineAsArray->{
if(lineAsArray[0]。等于(“D”)){
插入医生(lineAsArray);
}
else if(lineAsArray[0]。等于(“P”)){
插入病人(线状放射);
}
});
}
注意:与大多数Java API不同,如果未为
文件.lines
指定UTF-8,则默认为UTF-8。
try (Stream<> lines = Files.lines(p, StandardCharsets.UTF_8)) { // 1
lines.map(line -> line.split(";")) // 2
.forEach(lineAsArray -> {
if (lineAsArray[0].equals("D")) {
insertDoctor(lineAsArray);
}
else if (lineAsArray[0].equals("P")) {
insertPatient(lineAsArray);
}
});
}