1. 程式人生 > >java向txt中寫入字串的幾種方式以及效率

java向txt中寫入字串的幾種方式以及效率

1.PrintWriter

          try {
			PrintWriter pw=new PrintWriter("D://1.txt");
			for(int i=0;i<500000;i++){
			   pw.write("我是一顆自由小星星"); 
			}
			   pw.flush();
			   pw.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

2.FileWriter

FileWriter writer;
	        try {
	            writer = new FileWriter("D://1.txt",true);
	            for(int i=0;i<500000;i++){
	               writer.write("我是一顆自由小星星");
	            }
	            writer.flush();//重新整理記憶體,將記憶體中的資料立刻寫出。
	            writer.close();
	        } catch (IOException e) {
	            e.printStackTrace();
	        }

3.FileOutputStream

                String str="我是一顆自由小星星";
                byte[] b = str.getBytes();
                File file=new File("D://1.txt");
		try { 
                        file.createNewFile();
			FileOutputStream  fos=new FileOutputStream(file);
			 for(int i=0;i<500000;i++){
				fos.write(b);
			 }
			 fos.flush();
			 fos.close();
			
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
4.FileWriter和BufferedWriter1
            FileWriter fw;
            File file=new File("D://1.txt");
try {fw = new FileWriter(file);BufferedWriter bw = new BufferedWriter (fw);for(int i=0;i<count;i++){fw.write("我是一顆自由小星星");}fw.close(); fw.close(); } catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}
5.FileWriter和BufferedWriter2
                FileWriter fw;
                File file=new File("D://1.txt");
try {fw = new FileWriter(file);BufferedWriter bw = new BufferedWriter (fw);for(int i=0;i<500000;i++){bw.write("我是一顆自由小星星");}bw.flush();bw.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}
6.PrintWriter和BufferedWriter3
                PrintWriter fw;
		try {
			fw = new PrintWriter("D://1.txt");
			BufferedWriter bw = new BufferedWriter (fw);
			for(int i=0;i<500000;i++){
			bw.write("我是一顆自由小星星");
			}
			bw.flush();
			bw.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}      

7.PrintWriter和BufferedWriter4

                PrintWriter fw;
		try {
			fw = new PrintWriter("D://1.txt");
			BufferedWriter bw = new BufferedWriter (fw);
			for(int i=0;i<500000;i++){
			fw.write("我是一顆自由小星星");
			}
			fw.flush();
			fw.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}      
8.OutputStreamWriter和BufferedWriter5
                OutputStreamWriter fw;
               File file=new File("D://1.txt");		
try {OutputStream outputstream =new FileOutputStream(file);fw = new OutputStreamWriter(outputstream);BufferedWriter bw = new BufferedWriter (fw);for(int i=0;i<count;i++){fw.write("我是一顆自由小星星");}fw.flush();fw.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}
執行效率對比

檔案大小---15820KB


1---printWriter  time  383.0毫秒

2---fileWriter  time  394.0毫秒

3---fileOutputStream  time  4059.0毫秒

4---bufferedWriter1_FileWriter  time  258.0毫秒

5---bufferedWriter2_filewriter  time  167.0毫秒

6---bufferedWriter3_printwriter  time  178.0毫秒

7---bufferedWriter4_printwriter  time  176.0毫秒

8---bufferedWriter5_outputstreamwriter  time  269.0毫秒

檔案大小---158203KB


1---printWriter  time  2383.0毫秒

2---fileWriter  time  2941.0毫秒

3---fileOutputStream  time  39663.0毫秒

4---bufferedWriter1_FileWriter  time  2374.0毫秒

5---bufferedWriter2_filewriter  time  1584.0毫秒

6---bufferedWriter3_printwriter  time  1913.0毫秒

7---bufferedWriter4_printwriter  time  1574.0毫秒

8---bufferedWriter5_outputstreamwriter  time  2500.0毫秒

檔案大小---1582031KB

1---printWriter  time  22574.0毫秒

2---fileWriter  time  23056.0毫秒

3---bufferedWriter1_FileWriter  time  23106.0毫秒

4---bufferedWriter2_filewriter  time  16555.0毫秒

5---bufferedWriter3_printwriter  time  19872.0毫秒

6---bufferedWriter4_printwriter  time  17662.0毫秒

7---bufferedWriter5_outputstreamwriter  time  22536.0毫秒

檔案大小---3515625KB

1---printWriter  time  51450.0毫秒

2---fileWriter  time  55853.0毫秒

3---bufferedWriter1_FileWriter  time  50722.0毫秒

4---bufferedWriter2_filewriter  time  35656.0毫秒

5---bufferedWriter3_printwriter  time  43913.0毫秒

6---bufferedWriter4_printwriter  time  37597.0毫秒

7---bufferedWriter5_outputstreamwriter  time  50935.0毫秒

檔案大小---351562KB
1---bufferedWriter2_filewriter  time  4080.0毫秒

2---bufferedWriter3_printwriter  time  3855.0毫秒

3---bufferedWriter4_printwriter  time  3220.0毫秒

檔案大小---351562KB
1---bufferedWriter2_filewriter  time  3809.0毫秒

2---bufferedWriter3_printwriter  time  3833.0毫秒

3---bufferedWriter4_printwriter  time  3176.0毫秒

檔案大小---351562KB
1---bufferedWriter2_filewriter  time  3834.0毫秒

2---bufferedWriter3_printwriter  time  3878.0毫秒

3---bufferedWriter4_printwriter  time  3184.0毫秒

檔案大小---351562KB
1---bufferedWriter2_filewriter  time  3969.0毫秒

2---bufferedWriter3_printwriter  time  3876.0毫秒

3---bufferedWriter4_printwriter  time  3315.0毫秒

檔案大小---351562KB
1---bufferedWriter4_printwriter  time  4903.0毫秒

2---bufferedWriter2_filewriter  time  3035.0毫秒

3---bufferedWriter3_printwriter  time  3719.0毫秒

檔案大小---351562KB
1---bufferedWriter3_printwriter  time  4003.0毫秒

2---bufferedWriter4_printwriter  time  4708.0毫秒

3---bufferedWriter2_filewriter  time  3871.0毫秒