java 寫文件的三種方法比較

java 寫文件的三種方法比較

複製代碼

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

相關文章
相關標籤/搜索