请教文件关闭问题

来源:5-1 字节字符转换流

liusongsir

2015-07-29 10:10

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不需要关闭吗?


写回答 关注

4回答

  • 特地学java
    2016-03-02 13:38:00

    但是我刚才也试了下,

    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去读取时候一样

  • 特地学java
    2016-03-02 11:03:25

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

  • 傻熊
    2015-08-31 23:05:02

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

  • 好帮手慕珊
    2015-07-29 17:18:30

    都需要关闭

    liuson...

    原来是这样啊~我看老师讲的时候没有提过要关闭,然后突然就想问问。

    2015-07-30 09:17:26

    共 1 条回复 >

文件传输基础——Java IO流

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

133754 学习 · 1030 问题

查看课程

相似问题