【发布时间】:2015-10-21 15:18:47
【问题描述】:
我有一个格式如下的大文件:-
第一行
二线
三线
第四行
第五线
数据1;数据2;数据3
数据1;数据2;数据3
数据1;数据2;数据3
....
....
我希望我的代码跳过前 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)
但无法理解更多。我希望得到一些帮助。
【问题讨论】: