黑马程序员技术交流社区
标题:
一个关于IO流的异常问题?????
[打印本页]
作者:
awkflf11
时间:
2014-3-24 00:16
标题:
一个关于IO流的异常问题?????
import java.io.FileWriter;
import java.io.IOException;
public class IOExceptionDemo {
/**
* @param args 、// IO异常处理
*/
public static void main(String[] args) {
FileWriter fw = null;//以后流对象的引用 全都定义在外边
try {
fw = new FileWriter("demo1.txt");
fw.write("abcde");
fw.flush();
} catch (Exception e) {
e.printStackTrace();
} finally
if (fw != null)
try {
fw.close();
} catch (IOException e) {
throw new RuntimeException("关闭失败")
}
}
}
}
请问在finally里,,为什么要增加一个if (fw != null) 判断??
看了老师的视频,,还是不解,,请高手回答》》??多谢了
作者:
胡永城
时间:
2014-3-24 11:37
如果try {
fw = new FileWriter("demo1.txt");
fw.write("abcde");
fw.flush();
} 捕获异常了,有可能是 fw = new FileWriter("demo1.txt");打开错误,这时fw=NULL,.......
作者:
向阳泪无痕
时间:
2014-3-28 08:57
你看啊 在执行这句话 fw = new FileWriter("demo1.txt");
的时候 会去找 demo1.txt 文件吧 如果你这个文件跟本不存在 那么就会报 IOException 异常了
这时 fw 流没有建立 是 fw == null 的
而 finally 表示一定要执行的 在 fw == null 的情况下 你去关闭流 fw.close() 又会报异常,因为该流并没有建立成功是吧。所以在关闭流之前要判断 该 fw 流是否是成功创建了的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2