Java IO讀寫大檔案的幾種方式及測試

2021-08-31 10:29:44 字數 885 閱讀 2239

讀取檔案大小: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...