我有以下格式一個巨大的文件: -分割線,通過閱讀使用Java 8文件處理它們流
一線
二線
三線
四線
第五行
數據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)
但是無法理解更多內容。我希望得到一些幫助。
附錄:不是100%肯定,但我認爲流將自動關閉運行後,所以試穿與資源恐怕沒有必要。 –
[可惜不是](http://stackoverflow.com/a/27382060/2711488) – Holger