当用FileInputStrem的read方法读取一文件时,需要捕获IOException,那发生IOException的原因是什么?是读着读着突然文件被删了?还是什么其它原因?
我觉得你的问题有3方面的意思
什么是IOException
这个你可以看看API
http://download.oracle.com/javase/6/docs/api/java/io/IOException.html
广泛的说,什么时候会有IOException
比如你文件都不到的时候
你在做数据库操作的时候数据库底层出现问题
或者你系统IO出问题了
系统拿不到文件句柄
你说的读着读着突然被删了,你可以试试,书不定真可以
你可以看有多少IOExeption个子类,差不多就有多少种类型
为什么我要捕获IOExeption
为什么要有checked exception,这个是java设计的问题,暂不深究
但是这个IOException的意思就是告诉你,万一你在做io操作的时候出现异常怎么办
最简单的例子是,我[code="java"]Class clazz = Class.forname("/path/to/class");[/code]
这个时候万一找不到这个class文件该怎么办,也算提醒程序员极有可能出现问题的地方,这里不能忽略
还有一个例子是[code="java"]
try {
stream.close()
} catch(IOException e) {
// ignore
}
[/code]
你可以看到这里我们的IOException是忽略的,因为关闭不了,我们也没办法 -_-!!!
主要是文件不存在的原因吧~~,或者磁盘不能写入 ~~只要在读写文件的时候出现问题,则会抛出IO异常
楼上回答的很好,简单解释就好比你操作windows系统,操作一个文件时候,要删除一个文件,提示文件被其他用户使用不能删除,这样的错误,或者直接在运行中输入地址,然后提示错误文件无法找到,这些在程序中体现就是IOException