我必須閱讀一個大的文本文件,比如說25GB,並且需要在15-20分鐘內處理這個文件。該文件將具有多個頁眉和頁腳部分。閱讀和處理25GB大文本文件
我試圖CSPLIT分裂基於頭這個文件,但它正在約24至25分鐘,將其分割爲多個文件,基於報頭,這是不能接受的。
我試着用BufferReader
和BufferWiter
以及FileReader
和FileWriter
連續讀取和寫入。它需要超過27分鐘。再次,這是不可接受的。
我試着像得到每頭開始指數的另一種方法,然後運行多個線程使用RandomAccessFile
來讀取特定位置的文件。但沒有這個運氣。
我該如何達到我的要求?
的可能重複:
NIO有其自己的醜陋限制:您最多可以將2GB映射爲緩衝區,因爲Buffer API對所有偏移使用int。對於大文件來說,這使得nio很麻煩。 – Durandal 2012-01-11 11:27:25