gpt4 book ai didi

java - 拆分行并通过使用 Java 8 Streams 读取文件来处理它们

转载 作者:搜寻专家 更新时间:2023-11-01 01:25:32 24 4
gpt4 key购买 nike

我有一个以下格式的大文件:-

First Line
Second Line
Third Line
Fourth Line
Fifth Line
Data1;Data2;Data3
Data1;Data2;Data3
Data1;Data2;Data3
....
....

我希望我的代码跳过前 5 行,然后对于其余的行,它将用“;”分隔行并与第三项进行一些字符串比较。我希望为此目的使用 Java 8 Streams,但无法弄清楚如何正确地解决它。我已经使用 BufferedReader 完成了我想做的事情,代码如下:-

try (BufferedReader reader = Files.newBufferedReader(dictionaryPath)) {
String line;
reader.readLine();
reader.readLine();
reader.readLine();
reader.readLine();
reader.readLine();
while ((line = reader.readLine()) != null) {
String[] dictData = line.split(";");
if (data.equals(dictData[2])) {
System.out.println("Your Data Item is: " + dictData[0]);
break;
}
}
}

但我不确定如何使用 Java 8 流实现与上述相同的效果。我正在尝试以下操作:

try (Stream<String> lines = Files.lines(dictionaryPath)) {
lines.skip(5).map(line -> line.split(";")).flatMap(Arrays::stream)

但无法理解更多。我希望得到一些帮助。

最佳答案

你可以尝试这样的事情:

Files.lines(dictionaryPath)
.skip(5) // skip first five lines
.map(line -> line.split(";")) // split by ';'
.filter(dictData -> data.equals(dictData[2])) // filter by second element
.findFirst() // get first that matches and, if present, print it
.ifPresent(dictData -> System.out.println("Your Data Item is: " + dictData[0]));

关于java - 拆分行并通过使用 Java 8 Streams 读取文件来处理它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33263126/

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