java.io.IOException: Stream closed解决办法

来源:互联网 发布:用js触发a标签的href 编辑:程序博客网 时间:2024/05/16 06:51
/**     * @author Keyty     * @功能:将文件保存回原来的文件目录     */    public void saveFile()     {        File file =this.getCurFileName();        //准备写入到指定文件即可        FileWriter fw =null;        BufferedWriter bw =null;        try        {            fw=new FileWriter(file);            bw=new BufferedWriter(fw);            //获取jta文本,并用\n分隔符分割文本            String[] s =this.jta.getText().split("\n");            for (int i = 0; i < s.length; i++) {                bw.write(s[i]);                bw.flush();                bw.newLine();            }        } catch (Exception e)        {            e.printStackTrace( );            // TODO: handle exception        }        finally         {            try             {                //这里关闭流要从大到小关闭                //fw.close();                   //bw.close();                //这样的顺序就是不行,fw流自己关闭了。然后bw流又把                //fw流关闭一次就会说java.io.IOException: Stream closed                bw.close();                fw.close();            } catch (IOException e)             {                // TODO Auto-generated catch block                e.printStackTrace();            }        }    }

报错说如下
那么是因为一个流关闭了但是你有试着使用它就会报这个异常
比如上面例子

bw.close();fw.close();

bw流使用了fw流,所以关闭bw流也会关闭fw流;
但是下面有使用fw流,相当于使用一个关闭了的流。解决办法是换下位置就好

fw.close();bw.close();
0 0