使用bos写的时间为0,请老师指出问题
package ioStream;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Random;
public class BufferedExercise {
public static void main(String[] args) {
long t1 = 0,t2=0;
Random r=new Random();
try {
FileOutputStream fos1= new FileOutputStream("one.txt");
FileInputStream fis1=new FileInputStream("one.txt");
//基于FileOutputStream的one.txt
long startTime1=System.currentTimeMillis();
int n1=0;
while(n1<100000) {
fos1.write((char)(65+r.nextInt(26)));
n1++;
}
long endTime1=System.currentTimeMillis();
t1=endTime1-startTime1;
fos1.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//基于BufferedOutputStream的two.txt
try {
FileOutputStream fos2 = new FileOutputStream("two.txt");
BufferedOutputStream bos=new BufferedOutputStream(fos2);
FileInputStream fis2=new FileInputStream("two.txt");
BufferedInputStream bis=new BufferedInputStream(fis2);
long startTime2=System.currentTimeMillis();
int n2=0;
while(n2<100000) {
bos.write((char)(65+r.nextInt(26)));
n2++;
}
bos.flush();
long endTime2=System.currentTimeMillis();
t2=endTime2-startTime2;
bos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("one.txt不使用缓冲流来写");
System.out.println("用时为:"+t1+"ms");
System.out.println("two.txt使用缓冲流来写");
System.out.println("用时为:"+t2+"ms");
System.out.println("节省时间:"+(t1-t2)+"ms");
}
}0
收起
正在回答
2回答
1、在老师的电脑上没有出现过0ms的情况,(把循环改小10倍后出现过0ms)但两个确实是不一定的。猜测有可能是同学的电脑性能很好,可能处理的比较快。建议同学把两个循环都乘以10倍,也就是都加个0.看看t2是否还是0ms呢?
2、在回复中无法截图,可以在回答中贴一下你的截图

追问贴代码时,也要贴在我要回答中呦,在回复中贴代码会失去代码格式。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星