使用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 星