`

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 豪秒

分享到:
评论

相关推荐

    java源码包---java 源码 大量 实例

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    JAVA上百实例源码以及开源项目

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    java源码包4

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    java源码包3

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    Java追加文件内容的三种方法实例代码

    本篇文章主要介绍了Java追加文件内容的三种方法实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

    Java中多种写文件方式的效率对比实验(图)

     近在考虑一个问题:“如果快速地向文件中写入数据”,java提供了多种文件写入的方式,效率上各有异同,基本上可以分为如下三大类:字节流输出、字符流输出、内存文件映射输出。前两种又可以分为带buffer及不带...

    java源码包2

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    JAVA上百实例源码以及开源项目源代码

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    java编写三种排序方法小程序

    有界面,对随机产生的10个数进行排序并输出结果;计数排序、冒泡排序、快速排序;运用了继承和向上转型

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...

    JAVA_API1.6文档(中文)

    java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...

    Java语言原理与技术(原创书稿:RAR文件之三)

    作为一名计算机相关学科的高校教师,也作为一名学习计算机知识的学生,我在阅读和学习各种计算机知识的时候,经常感到这样的一种无助,那就是很难入门。有老师教,那是最好,不过也要看老师的水平和责任心,然而...

    Java代码实现中文与ASCII互相转换

    Java自定义实现本地语言与ASCII之间的互相转换。可在开发项目中直接调用的工具类。

    java api最新7.0

    java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...

    中软公司JAVA培训资料.doc

    **12、解析XML文件的几种方式和区别 13、Java四种基本权限的定义 14、Java的国际化 二、JSP 1、至少要能说出7个隐含对象以及他们的区别 ** 2、forward 和redirect的区别 3、JSP的常用指令 三、servlet doc

    Java JNI完全手册

    解决JAVA对本地操作的一种方法就是JNI。  JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使JAVA可以...

    Java 1.6 API 中文 New

    java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...

    java开源包11

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包6

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包9

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

Global site tag (gtag.js) - Google Analytics