我想收到一些關於我將在Java中解決的一些小問題的建議。在Java中將大文本文件解析爲塊
我有包括以下格式的文件:
@
some text
some text
some text
@
some text
some text
some text
@
some text
some text
some text
...等等。
我需要讀取該文本文件的下一個塊,然後創建一個InputStream對象來讀取塊的const並將InputStream對象傳遞給解析器。我必須爲文本文件中的每個塊重複這些操作。每個塊都寫在以@開頭的行之間。問題是使用應該從InputStream讀取每個塊的解析器來解析@標籤之間的每個部分。
該文本文件可能很大,所以我想獲得良好的性能。
我該如何解決這個問題?
我曾經想過做這樣的事情:
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
Scanner scanner = new Scanner(bufferedReader);
scanner.useDelimiter("@");
List<ParsedChunk> parsedChunks = new ArrayList<ParsedChunk>();
ChunkParser parser = new ChunkParser();
while(scanner.hasNext())
{
String text = scanner.next();
InputStream inputStream = new ByteArrayInputStream(text.getBytes("UTF-8"));
ParsedChunk parsedChunk = parser.parse(inputStream);
parsedChunks.add(parsedChunk);
inputStream.close();
}
scanner.close();
,但我不知道這是否會做一個很好的方式。
謝謝。
很難理解該文件的格式。另外,如果您希望在帖子中使用正確的格式標記。 –
在開始優化之前,您應該測量問題所在。在許多系統中,限制性的事實是讀取文件並分解成行的時間。在這種情況下,您可能會嘗試加速最快的一點。 –
是downvoters需要從他們的錢包支付給予理由?他們爲什麼不發表評論? – SpringLearner