我不知道如何做到以下幾點:我想處理一個真正巨大的文本文件(差不多5千兆字節)。由於我無法將文件複製到臨時存儲器中,因此我想要閱讀前500行(或者與內存匹配的內容,我對此還不確定),然後對其進行處理,然後繼續下一個500行我完成了整個文件。閱讀羣文件中的行數
你能發表一個你需要的「循環」或命令的例子嗎?因爲我嘗試過的所有方式都是從頭開始的,但我想在完成前面500行後繼續。
幫助讚賞。
我不知道如何做到以下幾點:我想處理一個真正巨大的文本文件(差不多5千兆字節)。由於我無法將文件複製到臨時存儲器中,因此我想要閱讀前500行(或者與內存匹配的內容,我對此還不確定),然後對其進行處理,然後繼續下一個500行我完成了整個文件。閱讀羣文件中的行數
你能發表一個你需要的「循環」或命令的例子嗎?因爲我嘗試過的所有方式都是從頭開始的,但我想在完成前面500行後繼續。
幫助讚賞。
BufferedReader br = new BufferedReader(new FileReader(file));
String line = null;
ArrayList<String> allLines = new ArrayList<String>();
while((line = br.readLine()) != null) {
allLines.add(line);
if (allLines.size() > 500) {
processLines(allLines);
allLines.clear();
}
}
processLines(allLines);
好吧,您在上面的評論中指出,您只想保留某些行,並根據某些邏輯將它們寫入新文件。你可以一次讀一行,決定是否保留它,如果是這樣寫入新文件。這種方法將使用很少的內存,因爲你一次只能在內存中保存一行。下面是做到這一點的一種方法:
BufferedReader br = new BufferedReader(new FileReader(file));
String lineRead = null;
FileWriter fw = new FileWriter(new File("newfile.txt"), false);
while((lineRead = br.readLine()) != null)
{
if (true) // put your test conditions here
{
fw.write(lineRead);
fw.flush();
}
}
fw.close();
br.close();
你想它是在閱讀後修改的文本或你基本上是進口的只讀目的的數據(即寫入修改後的文本回文件。)? –
我希望適合特定模式的行被寫入到一個新文件中,以便最終我有一個新文件,其中包含與該模式匹配的原始文件中的所有行。原件不應該修改。 – Grrace