zoukankan      html  css  js  c++  java
  • java写入文件的三种方式比较

    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("测试文件操作
    ".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("测试文件操作
    ".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("测试文件操作
    ");
                }
                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

  • 相关阅读:
    桌面图标有蓝底
    创建与删除SQL约束或字段约束
    (转)ASP.NET(C#) 读取EXCEL ——另加解决日期问题
    ASP连接11种数据库的语法
    GridView 合并列、行类
    Office对应ContentType
    (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
    (转)js判断只能输入数字或小数点
    vscode设置字体大小
    springsecurity+jwt实现登录
  • 原文地址:https://www.cnblogs.com/ouyanxia/p/6878932.html
Copyright © 2011-2022 走看看