请老师检查,谢谢老师!
来源:3-16 自由编程
weixin_慕码人9127363
2020-10-22 13:37:41
# 具体遇到的问题
# 报错信息的截图
# 相关课程内容截图
# 尝试过的解决思路和结果
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
package com.zhong.file;
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 Test3_16 {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
FileInputStream fis1=new FileInputStream("one.txt");
FileOutputStream fos1=new FileOutputStream("one.txt");
String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random=new Random();
long startTime1=System.currentTimeMillis();
int n=0;
for(int i=0;i<100000;i++){//写
fos1.write(str.charAt(random.nextInt(62)));
}
long endTime1=System.currentTimeMillis();
long dif1=endTime1-startTime1;
System.out.println("one.txt不使用缓冲流来写");
System.out.println("用时为:"+dif1);
FileInputStream fis2=new FileInputStream("two.txt");
FileOutputStream fos2=new FileOutputStream("two.txt");
BufferedInputStream bis=new BufferedInputStream(fis2);
BufferedOutputStream bos=new BufferedOutputStream(fos2);
long startTime2=System.currentTimeMillis();
for(int i=0;i<100000;i++){//写
bos.write(str.charAt(random.nextInt(62)));
}
long endTime2=System.currentTimeMillis();
long dif2=endTime2-startTime2;
System.out.println("two.txt使用缓冲流来写");
System.out.println("用时为:"+dif2);
System.out.println("节省时间:"+(dif1-dif2));
fis1.close();
fos1.close();
fis2.close();
fos2.close();
bis.close();
bos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
}
}
1回答
同学你好,测试贴出代码,有如下的报错信息

流的关闭顺序建议先定义的后关闭,后定义的先关闭,比如:

如上所示再来尝试一下。
同学的代码逻辑并没有问题,很棒。
相似问题