java.io.IOException: Stream closed解決辦法
阿新 • • 發佈:2019-02-18
/**
* @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();