3-16 自由编程
来源:3-16 自由编程
jia_蛙
2019-09-11 21:38:30
public class StreamTest {
public static void main(String[] args) {
/**
* 将100000个字符分别写入one.txt和two.txt
* one不加缓冲的文件输出流来写,two用缓冲文件输出流来写
* 比较用时
*/
FileOutputStream fos;
BufferedOutputStream bos;
long InitialTime = 0;//起始时间
long EndTime = 0;//结束时间
long Buffered = 0;// 用缓冲所有时间
long NoBuffered = 0; //没用缓冲所用时间
try {
//不用缓冲流来写
fos = new FileOutputStream("one.txt");
InitialTime = System.currentTimeMillis();
for(int i=1;i<=100000;i++) {
fos.write('a');
}
EndTime = System.currentTimeMillis();
NoBuffered = EndTime-InitialTime;
System.out.println("one.txt不使用缓冲流来写用时为:" + NoBuffered + "ms");
//用缓冲流来写
fos = new FileOutputStream("two.txt");
bos = new BufferedOutputStream(fos);
InitialTime = System.currentTimeMillis();
for(int i=1;i<=100000;i++) {
bos.write('a');
}
EndTime = System.currentTimeMillis();
Buffered = EndTime-InitialTime;
System.out.println("two.txt用缓冲流来写用时为:" + Buffered + "ms");
System.out.println("节省时间:" + ( NoBuffered - Buffered) );
//关闭资源
bos.flush();
bos.close();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
结果:
one.txt不使用缓冲流来写用时为:207ms
two.txt用缓冲流来写用时为:2ms
节省时间:205老师帮忙看一下,有没有哪里需要改进的地方
1回答
同学的代码完成的不错,有一点小小的建议:建议将流的关闭写在finally块中,这样即使发生异常,流也可以正常关闭。
祝:学习愉快~
相似问题