1. 程式人生 > >java寫入文件的三種方式比較

java寫入文件的三種方式比較

all mem exc 操作 測試文件 nts sys output println

1.FileOutputStream方式

2.BufferedOutputStream方式

3.FileWriter方式

經過多次測試,發現不緩存的FileOutputStream會比較慢,當文件小的話,關系不大,但是當文件大時,消耗的時間就會有很明顯差別

package fileTest;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
/**
 * 三種文件寫入方式
 *
 
*/ public class OutputFile1 { 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("D:\\testFile\\test.txt")); long begin = System.currentTimeMillis(); for(int i=0; i<count; i++){ out.write("測試文件操作\r\n".getBytes()); } out.close(); long end = System.currentTimeMillis(); System.out.println("
FileOutputStream方式耗時"+(end-begin)); outStr = new FileOutputStream(new File("D:\\testFile\\test1.txt")); buff = new BufferedOutputStream(outStr); long begin0 = System.currentTimeMillis(); for(int i=0; i<count; i++){ buff.write("測試文件操作\r\n".getBytes()); } buff.flush(); buff.close(); long end0 = System.currentTimeMillis(); System.out.println("BufferedOutputStream方式耗時:"+(end0-begin0)); fw = new FileWriter(new File("D:\\testFile\\test2.txt")); long begin1 = System.currentTimeMillis(); for(int i=0; i<count; i++){ fw.write("測試文件操作\r\n"); } fw.close(); long end1 = System.currentTimeMillis(); System.out.println("FileWriter方式耗時:"+(end1-begin1)); } catch (Exception e) { // TODO: handle exception }finally { try { fw.close(); buff.close(); outStr.close(); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }

運行結果:

FileOutputStream方式耗時6
BufferedOutputStream方式耗時:5
FileWriter方式耗時:4

java寫入文件的三種方式比較