public voidwrite() {
FileOutputStream out = null;
FileOutputStream outSTr = null;// 文件输出流
BufferedOutputStream buff = null;// 缓冲输出流
FileWriterfw = null;
int count =100000;// 写文件行数
try {
Filedirectory = new File("E:\\xiong");// 指定目录
if(!directory.exists()) {
directory.mkdirs();
}
StringfileName = "add.txt";
String file= directory + "\\" + fileName;
out = newFileOutputStream(new File(file));
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 = newFileOutputStream(new File("E:\\xiong\\add0.txt"));
buff = newBufferedOutputStream(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 = newFileWriter("E:\\xiong\\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();
}
}
}
当conut=100000(十万)时,
运行结果为如下:
FileOutputStream执行耗时:408 豪秒
BufferedOutputStream执行耗时:39 豪秒
FileWriter执行耗时:63 豪秒
当conut=1000000(一百万)时,
运行结果为如下:
FileOutputStream执行耗时:3124 豪秒
BufferedOutputStream执行耗时:333 豪秒
FileWriter执行耗时:280 豪秒
可以得知以下结论:当进行纯文本的写操作时,FileWriter的效率最高。其次为BufferedOutputStream,根据它的名字(缓冲输出流)可以知道,有缓冲效率会提高很多。而最原始的FileOutputStream效率就最低了。
当conut=100000(十万)时,
运行结果为如下:
FileOutputStream执行耗时:408 豪秒
BufferedOutputStream执行耗时:39 豪秒
FileWriter执行耗时:63 豪秒
当conut=1000000(一百万)时,
运行结果为如下:
FileOutputStream执行耗时:3124 豪秒
BufferedOutputStream执行耗时:333 豪秒
FileWriter执行耗时:280 豪秒
可以得知以下结论:当进行纯文本的写操作时,FileWriter的效率最高。其次为BufferedOutputStream,根据它的名字(缓冲输出流)可以知道,有缓冲效率会提高很多。而最原始的FileOutputStream效率就最低了。