您的位置:首页 > 编程语言 > Java开发

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

2015-08-07 11:29 651 查看
[code]/**
     * @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();
            }

        }

    }


报错说



那么是因为一个流关闭了但是你有试着使用它就会报这个异常

比如上面例子

[code]bw.close();
fw.close();


bw流使用了fw流,所以关闭bw流也会关闭fw流;

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

[code]
fw.close();
bw.close();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: