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 豪秒
html