----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
/**
* 该段代码演示了对IO异常的完整的处理。
* 注意对代码的注释,解释了各行代码存在的必要性
*/
import java.io.*;
public class Test11 {
public static void main(String[] args) {
FileWriter fw=null;
try{
/*FileWriter fw=new FileWriter("test11.text");
* 不能在此处这样声明fw对象同时初始化。
* 原因:如果这样的话fw对象的作用域只是try语句块,在finally语句块中将无法使用
*/
fw=new FileWriter("test11.text");
fw.write("abcd");
/*
* fw.close();
* 不能在此处这样关闭fw。
* 原因:如果在上面fw.write("abcd")处出现异常,该行代码将不会执行,导致fw无法关闭;
*所以应该在finally中关闭fw。
*/
}catch(IOException e){ //捕获try语句块中可能抛出的异常
System.out.println(e.toString());
}finally{
//将fw.close()放在finally中,保证fw一定会被关闭
//因为fw.close()也是IO操作,此处的try是为了捕获fw.close()可能抛出的异常
try{
//如果在上面fw=new FileWriter("test11.text")处出现异常,fw为
//null,下面的fw.close()会抛出空指针异常,所以要对fw进行非null判断。
if(fw!=null)
fw.close(); //close()会调用flush()方法将数据从流中写入到test11.text中。
}catch(IOException e){
System.out.println(e.toString());
}
}
}
}