关于多次执行结果不一致的问题
来源:3-16 自由编程
Homo_sapiensQ
2020-08-21 11:18:34
package com.imooc.file;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.StringBufferInputStream;
public class BufferTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
File f1 = new File("d://学习//eclipse//workplace//Java BackEnd//src//com//imooc//file//one.txt");
File f2 = new File("d://学习//eclipse//workplace//Java BackEnd//src//com//imooc//file//two.txt");
try {
if (!f1.exists()) {
f1.createNewFile();
}
if (!f2.exists()) {
f2.createNewFile();
}
FileInputStream fis1 = new FileInputStream(
"d://学习//eclipse//workplace//Java BackEnd//src//com//imooc//file//one.txt");
FileOutputStream fos1 = new FileOutputStream(
"d://学习//eclipse//workplace//Java BackEnd//src//com//imooc//file//one.txt");
long startTime = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
fos1.write('a');
}
long endTime = System.currentTimeMillis();
fis1.close();
fos1.close();
System.out.println("two.txt使用缓冲区来写:" + (endTime - startTime));
long startTime2 = System.currentTimeMillis();
FileInputStream fis2 = new FileInputStream(
"d://学习//eclipse//workplace//Java BackEnd//src//com//imooc//file//one.txt");
FileOutputStream fos2 = new FileOutputStream(
"d://学习//eclipse//workplace//Java BackEnd//src//com//imooc//file//one.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos2);
BufferedInputStream bis = new BufferedInputStream(fis2);
for (int i = 0; i < 100000; i++) {
bos.write('a');
}
bos.flush();
long endTime2 = System.currentTimeMillis();
System.out.println("two.txt使用缓冲区来写:" + (endTime2 - startTime2));
fis2.close();
fos2.close();
bos.close();
bis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}上面这段代码,有两个问题:
请问有什么可以改进优化的地方吗?
为何多次执行,结果会不一样?
1回答
好帮手慕阿园
2020-08-21
同学你好,代码完成的不错,很棒
1,同学代码中有如下地方需要优化一下
①有个输出语句需要改一下,如下

这里应该是"one.txt不使用缓冲流来写"
②建议同学将关闭流的操作放入finally语句中,这样出现异常也会执行关闭流的操作,防止浪费资源
2,每次运行用时的时间不一样的正常的,因为每次电脑的内存CPU运行所读取的时间都是不同的
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题