在IO流的異常處理時應該注意以下幾點:
1.在外邊建立引用,在Try内進行初始化(FileWriter fw = null;)
2.檔案的路徑使用必須是雙斜杠,轉義(fw = new FileWriter("D:\\NewFile.txt");)
3.在進行流關閉之前必須先對流進行判斷,如果不進行判斷,那麼将會出現以下錯誤
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5COkdjY1MDZiRGM3ATYkJmM5AjMkZWM3AzNwUGM2YTOl9CX4AzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL2M3Lc9CX6MHc0RHaiojIsJye.png)
出現上述錯誤的原因是:
由于系統路徑不存在,是以沒有建立流對象,在申明時流對象為null,是以報錯
錯誤代碼片:
/*
IO異常的處理方式。
*/
import java.io.*;
class FileWriterTry
{
public static void main(String[] args)
{
FileWriter fw = null;
try
{
fw = new FileWriter("Z:\\NewFile.txt");
fw.write("資料已經寫入檔案");
}
catch (IOException e)
{
System.out.println("catch:"+e.toString());
}
finally
{
try
{
fw.close();
}
catch (IOException e)
{
System.out.println(e.toString());
}
}
}
}
正确的異常處理代碼片:
/*
IO異常的處理方式。
*/
import java.io.*;
class FileWriterTry
{
public static void main(String[] args)
{
FileWriter fw = null;
try
{
fw = new FileWriter("D:\\NewFile.txt");
fw.write("資料已經寫入檔案");
}
catch (IOException e)
{
System.out.println("catch:"+e.toString());
}
finally
{
try
{
if(fw!=null)
fw.close();
}
catch (IOException e)
{
System.out.println(e.toString());
}
}
}
}