为了账号安全,请及时绑定邮箱和手机立即绑定

请教文件关闭问题

FileInputStream in = new FileInputStream(srcFile);
        InputStreamReader isr = new InputStreamReader(in);
        
        FileOutputStream out = new FileOutputStream(desFile);
        OutputStreamWriter osw = new OutputStreamWriter(out);

最后关闭的时候只要isr.close(); osw.close();这两个都关闭了就行吗?in和out不需要关闭吗?


正在回答

7 回答

但是我刚才也试了下,

FileInputStream inf=new FileInputStream("Demo/dddd.txt");
InputStreamReader isr=new InputStreamReader(inf,"UTF-8");

FileOutputStream outf=new FileOutputStream("Demo/dos.dat");
OutputStreamWriter osw=new OutputStreamWriter(outf);

isr.close();
osw.close();

byte[] s=new byte[8*1024];
while ((c=inf.read(s, 0, s.length))!=-1) {
      outf.write(s, 0, c);
}

这样去读取的时候,会报read error,跟提前关掉inf和outf去读取时候一样

0 回复 有任何疑惑可以回复我~

我本人也不太清楚,但是我问了工作群里面,说的是都需要关闭

0 回复 有任何疑惑可以回复我~

in和out是低级流,外面套着isr和osw高级流,关闭的时候只需要关闭最外层的就可以了。

0 回复 有任何疑惑可以回复我~

都需要关闭

0 回复 有任何疑惑可以回复我~
#1

liusongsir 提问者

原来是这样啊~我看老师讲的时候没有提过要关闭,然后突然就想问问。
2015-07-30 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
文件传输基础——Java IO流
  • 参与学习       133637    人
  • 解答问题       1030    个

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

进入课程

请教文件关闭问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信