练习3-16。老师你好,请问我的代码写的有什么问题吗,谢谢!!!

来源:3-16 自由编程

不停奔跑的小恐龙

2019-08-10 12:41:28

package my;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileDemo3 {
 public static void main(String[] args) {
  try {
   FileInputStream fis = new FileInputStream("imooc.txt");
   FileOutputStream fos = new FileOutputStream("imooc.txt");
   long start=System.currentTimeMillis();
   for(int i=1;i<=100000;i++){
    try {
     fos.write(i);
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
   long end=System.currentTimeMillis(); 
   System.out.println("imooc.txt不使用緩衝流來寫");
   System.out.println("使用输出流用時:"+(end-start));
   //缓存
   
   FileOutputStream fos2 = new FileOutputStream("imooc2.txt");
   BufferedOutputStream bos = new BufferedOutputStream(fos2);   
   long start2=System.currentTimeMillis();
   for(int i=1;i<=100000;i++){
    try {
     bos.write(i);
     
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
   try {
    bos.flush();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   long end2=System.currentTimeMillis();
   System.out.println("imooc2.txt使用緩衝流來寫");
   System.out.println("使用缓存流用時:"+(end2-start2));
   System.out.println("節省時間:"+((end-start)-(end2-start2)));
   
   
   
   
   
   
   
   
   
   
   
   
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}

还有一点就是在执行的时候,缓冲流的写入时间有时候会是0,有时候又是有数据的,请问这是为什么?谢谢老师!!!

写回答

1回答

好帮手慕柯南

2019-08-10

同学你好!

首先同学的代码完成正确,其次缓冲流的用时为零是可以的。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

0

0 学习 · 11489 问题

查看课程