java写对象到文件,java三种写文件对象详解

package com;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.FileWriter;

public class WriteFileTest {

private StringfilePath= "E:/data/writetest.txt";

private intcount= 10000000;// 写文件行数

private FileOutputStreamout1= null;

private FileOutputStreamout2= null;

private BufferedOutputStreambuffer= null;

private FileWriterfileWriter= null;

public void write1() throws Exception

{

out1 = new FileOutputStream(new File( filePath ));

long begin = System.currentTimeMillis();

for ( int i = 0; i < count; i++ )

{

out1.write( ( i + "这是用来测试java写 文件操作的内容,哦哈哈哈。\r\n" ).getBytes() );

}

long end = System.currentTimeMillis();

System.out.println( "FileOutputStream对象执行耗时: " + ( end - begin ) + " 豪秒" );

}

public void write2() throws Exception

{

out2 = new FileOutputStream( new File( filePath ) );

buffer = new BufferedOutputStream( out2 );

long begin = System.currentTimeMillis();

for ( int i = 0; i < count; i++ )

{

buffer.write( ( i + "这是用来测试java写 文件操作的内容,哦哈哈哈。\r\n" ).getBytes() );

}

long end = System.currentTimeMillis();

System.out.println( "BufferedOutputStream对象执行耗时: " + ( end - begin ) + " 豪秒" );

}

public void write3() throws Exception

{

fileWriter = new FileWriter( filePath );

long begin = System.currentTimeMillis();

for ( int i = 0; i < count; i++ )

{

fileWriter.write( i + "这是用来测试java写文件操作的内容,哦哈哈哈。\r\n");

}

long end = System.currentTimeMillis();

System.out.println("FileWriter对象执行耗时:" + ( end - begin ) + " 豪秒");

}

public static void main(String[] args)

{

try

{

WriteFileTest test = new WriteFileTest();

test.write1();

//test.write2();

//

//test.write3();

test.close();

} catch( Exception e )

{

e.printStackTrace();

}

}

private void close()

{

try

{

if ( null != out1 )

{

out1.close();

}

if ( null != out2 )

{

out2.close();

}

if ( null != fileWriter )

{

fileWriter.close();

}

} catch( Exception e )

{

e.printStackTrace();

}

}

}

综合以上测试得出结果:

当count=1000,写出的文件大小为20.6KB:FileOutputStream执行耗时:46 豪秒BufferedOutputStream执行耗时:32 豪秒FileWriter执行耗时:15 豪秒当count=10000,写出的文件大小为206KB:FileOutputStream执行耗时:172 豪秒BufferedOutputStream执行耗时:38 豪秒FileWriter执行耗时:21 豪秒

当count=100000的,即写文件100000行的时候,写出的文件大小为2062KB:FileOutputStream执行耗时:1254豪秒BufferedOutputStream执行耗时:168 豪秒FileWriter执行耗时:87 豪秒

当count=1000000的,即写文件1000000行的时候,写出的文件大小为20655KB:FileOutputStream执行耗时:12014 豪秒BufferedOutputStream执行耗时:1325 豪秒FileWriter执行耗时:884 豪秒

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值