package com;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
public class WriteFileTest {
private String filePath = "E:/data/writetest.txt";
private int count = 10000000; // 写文件行数
private FileOutputStream out1 = null;
private FileOutputStream out2 = null;
private BufferedOutputStream buffer = null;
private FileWriter fileWriter = 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 豪秒