import java.io.File; import java.io.FileOutputStream; import java.io.*; public class FileTest { public FileTest() { } public static void main(String[] args) { FileOutputStream out = null; FileOutputStream outSTr = null; BufferedOutputStream Buff=null; FileWriter fw = null; int count=1000;//寫文件行數 try { out = new FileOutputStream(new File(“C:/add.txt”)); long begin = System.currentTimeMillis(); for (int i = 0; i < count; i++) { out.write(“測試java 文件操作\r\n”.getBytes()); } out.close(); long end = System.currentTimeMillis(); System.out.println(“FileOutputStream執行耗時:” + (end - begin) + ” 豪秒”); outSTr = new FileOutputStream(new File(“C:/add0.txt”)); Buff=new BufferedOutputStream(outSTr); long begin0 = System.currentTimeMillis(); for (int i = 0; i < count; i++) { Buff.write(“測試java 文件操作\r\n”.getBytes()); } Buff.flush(); Buff.close(); long end0 = System.currentTimeMillis(); System.out.println(“BufferedOutputStream執行耗時:” + (end0 - begin0) + ” 豪秒”); fw = new FileWriter(“C:/add2.txt”); long begin3 = System.currentTimeMillis(); for (int i = 0; i < count; i++) { fw.write(“測試java 文件操作\r\n”); } fw.close(); long end3 = System.currentTimeMillis(); System.out.println(“FileWriter執行耗時:” + (end3 - begin3) + ” 豪秒”); } catch (Exception e) { e.printStackTrace(); } finally { try { fw.close(); Buff.close(); outSTr.close(); out.close(); } catch (Exception e) { e.printStackTrace(); } } } }
以下結果經過多次執行,取常出現的數據,由於只是簡單比較,不做詳細統計。
當count=1000的,即寫文件1000行的時候,寫出的文件大小為18.5KB:
FileOutputStream執行耗時:46 豪秒
BufferedOutputStream執行耗時:31 豪秒
FileWriter執行耗時:15 豪秒
2.當count=10000的,即寫文件10000行的時候,寫出的文件大小為185KB:
FileOutputStream執行耗時:188 豪秒
BufferedOutputStream執行耗時:32 豪秒
FileWriter執行耗時:16 豪秒
3.當count=100000的,即寫文件100000行的時候,寫出的文件大小為1856KB:
FileOutputStream執行耗時:1266 豪秒
BufferedOutputStream執行耗時:125 豪秒
FileWriter執行耗時:93 豪秒
4.當count=1000000的,即寫文件1000000行的時候,寫出的文件大小為18555KB:
FileOutputStream執行耗時:12063 豪秒
BufferedOutputStream執行耗時:1484 豪秒
FileWriter執行耗時:969 豪秒
本文轉。(ps: 個人感覺這種測試方法並不准確,測試方法不獨立,緩存因素或許有影響。)