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块中,这样即使发生异常,流也可以正常关闭。
祝:学习愉快~
相似问题