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回答

好帮手慕阿满

2019-09-12

同学的代码完成的不错,有一点小小的建议:建议将流的关闭写在finally块中,这样即使发生异常,流也可以正常关闭。

祝:学习愉快~

0
hia_蛙
h 谢谢老师!
h019-09-12
共1条回复

0 学习 · 11489 问题

查看课程