Java输入输出流中,为什么按下面fos、bos、fis、bis顺序关闭就会报错,按bos,fos,bis,fis顺序就 不会报错呢?

来源:3-14 缓冲流案例

童真模式启动

2021-06-16 23:45:00

package com.imooc.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;


public class MyBufferedDemo {


public static void main(String[] args) {

// 文件拷贝

try {

FileInputStream fis = new FileInputStream("happy.gif");

BufferedInputStream bis=new BufferedInputStream(fis);

FileOutputStream fos = new FileOutputStream("happycopy2.gif");

BufferedOutputStream bos=new BufferedOutputStream(fos);

long startTime=System.currentTimeMillis();

int n = 0;

byte[] b = new byte[1024];

while ((n = bis.read(b)) != -1) {

bos.write(b, 0, n);

}

//bos.flush();

long endTime=System.currentTimeMillis();

System.out.println(endTime-startTime);

fos.close();

bos.close();

fis.close();

bis.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}


}


}


写回答

1回答

好帮手慕小脸

2021-06-17

同学你好,一般流的关闭顺序建议先打开的后关闭,后打开的先关闭。就比如我们进行开门时,从大门打开,然后打开卧室门,进入房间,出去时,在我们进行关门时,就要先关卧室门,再关大门。所以这里同学按照顺序进行关闭就可以

http://img.mukewang.com/climg/60cab417093b011c03320165.jpg

祝学习愉快~

0

0 学习 · 16556 问题

查看课程