0
我有一個ASCII格式的文件,其中需要執行2個步驟的250k +行文本。使用Java對大文本文件中的數據進行劃分和提取
1)掃描整個文件,並通過匹配給定的正則表達式模式劃分部分。
2)讀取數據的每個部分並從中解析子部分。
一種選擇是使用BufferedReader對文件進行面向行的掃描,測試每行的匹配並存儲匹配的行號。
是否有更高效的選項可能使用nio命名空間?
我有一個ASCII格式的文件,其中需要執行2個步驟的250k +行文本。使用Java對大文本文件中的數據進行劃分和提取
1)掃描整個文件,並通過匹配給定的正則表達式模式劃分部分。
2)讀取數據的每個部分並從中解析子部分。
一種選擇是使用BufferedReader對文件進行面向行的掃描,測試每行的匹配並存儲匹配的行號。
是否有更高效的選項可能使用nio命名空間?
也許通過一串流來抽取文件;一個只傳遞匹配正則表達式的部分的流,接下來是執行解析步驟的流。
例如
OutputStream os = RegexFilterOutputStream(
new ParsingStuffOutputStream()
);
while(input not empty) {
// write stuff from input to os
}