码迷,mamicode.com
首页 > 编程语言 > 详细

java写入文件的三种方式比较

时间:2017-05-19 16:56:00      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:output   测试   exce   writer   int   main   final   rgs   stack   

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写入文件的三种方式比较

标签:output   测试   exce   writer   int   main   final   rgs   stack   

原文地址:http://www.cnblogs.com/ouyanxia/p/6878932.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!