讀取檔案大小:1.45g
第一種,oldio:
public static void oldioreadfile() throws ioexceptionelse
}pw.close();
br.close();
}
耗時70.79s
第二種,newio:
public static void newioreadfile() throws ioexception
read.close();
writer.close();
}
耗時47.24s
第三種,randomaccessfile:
public static void randomreadfile() throws ioexception
writer.close();
read.close();
}
耗時46.65
耗時:36
前三種讀法對應的資源占用圖如下:
相對於最後一種記憶體直接對映方式前面的測試其實無意義,基本秒殺。。。。。
system.gc();
system.runfinalization();
try catch (interruptedexception e)
第二種網上找來的,利用反射呼叫clean方法:
以上兩種方法感覺都彆扭,還有就是可以自己分割成物理檔案再迴圈呼叫,這個也不太美觀。
速度也會減慢好多。
java IO位元組流讀寫檔案
如果是按照資料的流向劃分 輸入流 輸出流以當前程式做參照物,觀察資料是流入還是流出,如果流出,則使用輸出流,如果資料是流入,則使用輸入流。如果按照處理的單位劃分 位元組流 位元組流讀取得都是檔案中二進位制資料,讀取到二進位制資料不會經過任何的處理。字元流 字元流讀取的資料是以字元為單位的 字元流也是...
大檔案分塊讀寫
記憶體只有 4g 無法一次性讀入 10g 的檔案,需要分批讀入。分批讀入資料要記錄每次讀入資料的位置。分批每次讀入資料的大小,太小就會在讀取操作上花費過多時間。把檔案的大小分成快一次寫入一點 file write chunk 取得時候可以封裝成乙個生成器,每次都一部分 def get lines l...
python讀寫大檔案
直接上 import easygui import ospath easygui.fileopenbox path是開啟的檔案的全路徑 if path 如果選擇開啟檔案,沒有選擇取消 b os.path.splitext path 把開啟的檔案的全路徑分割成檔名和字尾名 c b 0 trace xy...