利用不同的讀寫方式實現複製時,不同的方法對大檔案有較大的影響。
下面就三種方式測試一下。
ps:system.currentmillis();用於記錄那一刻的時間。
1.利用單位元組的方式直接複製(速度慢)
實現方法如下
public2.利用緩衝區bufferef提高效能(速度有較為明顯的提高)static
void dzj(file infile,file outfile) throws
ioexception
long b=system.currenttimemillis();
system.out.println("單位元組直接複製用時"+(b-a));
in.close();
out.close();
}
public3.利用位元組陣列批量讀寫位元組(速度提公升非常明顯,開闢了記憶體)static
void hc(file infile,file outfile)throws
ioexception
long b=system.currenttimemillis();
system.out.println("讀寫用緩衝區的用時為:"+(b-a));
in.close();
out.close();
}
public以上**執行結果如下:static
void bytes(file infile,file outfile)throws
ioexception
long b=system.currenttimemillis();
system.out.println("位元組陣列方法用時為:"+(b-a));
in.close();
out.close();
}
測試檔案為 10.1 mb (10,616,738 位元組)
解決亂碼 自定義io流讀寫編碼,讀寫不同編碼的檔案
利用io流讀寫檔案時,預設的流編碼都是utf 8,d但是如果流的編碼和檔案的編碼不一樣,得到的內容是亂碼.所幸的是位元組流可以在轉為string使用new string byte,charset 設定編碼.字元流inputstreamreader,outputstreamwriter這兩個類的構造方...
IO流的讀寫
測試了一些用普通的bufferreader讀太慢了,還是用位元組陣列輸出流比較快,測試nio比它還慢幾十毫秒如果讀寫8m的txt檔案示例 string newpath long start system.currenttimemillis mapmap xmlreader.viewxml file ...
io流的讀寫
所有的檔案,或資料夾 都用該類表示。file file new file c down a.txt 或 file file new file c down a.txt file 就表示a.txt檔案。可以用file來呼叫響應的方法。file.exists 判斷檔案或問價夾是否存在 file.crea...