gpt4 book ai didi

Java:处理流以从文件中读取

转载 作者:行者123 更新时间:2023-11-30 07:53:54 25 4
gpt4 key购买 nike

在我大学的实验室中,我正在用 Java 开发一个系统,该系统能够存储文件中的数据(给定文件路径为字符串)。我试图使用路径中的一连串线条来处理这个问题,但我在早期阶段就陷入了困境。该文件组织如下:一行的不同字段由“;”分隔每行以“P”或“D”开头。根据此参数,我将使用该行的内容来创建一个“患者”对象或一个“医生”对象,随后存储在两个不同的 map (患者或医生)中。我做了以下事情:

Path p= Paths.get(path);
Stream <String> lines=Files.lines(p, StandardCharsets.UTF_8);
lines.flatMap(l->Stream.of(l.split("; ")))....

我的想法是检查行首的单词,并据此将剩余的元素用作能够创建和存储相应对象(insertPatient 或 insertDoctor)的方法的参数。但是我对如何做到这一点一无所知。我知道做同样的事情的不同方法,但我真的想使用流开发解决方案,至少在读取不同行的过程中。谢谢,詹卢卡。

最佳答案

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);
}
});
}
  1. 使用 try-with-resources 确保流和文件读取器已关闭
  2. 不要使用 flatMap,因为你想对完整的行进行操作,而不是对单元格进行操作。

关于Java:处理流以从文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44471784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com