java.io.IOException是怎么回事

 我来答
ifeilong
2016-08-31 · TA获得超过8068个赞
知道大有可为答主
回答量:1187
采纳率:100%
帮助的人:788万
展开全部

IOException的故事


1. 什么是IOException 
这个你可以看看API 
http://download.oracle.com/javase/6/docs/api/java/io/IOException.html 

2. 广泛的说,什么时候会有IOException 
比如你文件都不到的时候 
你在做数据库操作的时候数据库底层出现问题 
或者你系统IO出问题了 
系统拿不到文件句柄 
你说的读着读着突然被删了,你可以试试,书不定真可以 
你可以看有多少IOExeption个子类,差不多就有多少种类型 

3. 为什么我要捕获IOExeption 
为什么要有checked exception,这个是java设计的问题,暂不深究 
但是这个IOException的意思就是告诉你,万一你在做io操作的时候出现异常怎么办 

最简单的例子是,我

Class clazz = Class.forname("/path/to/class");


这个时候万一找不到这个class文件该怎么办,也算提醒程序员极有可能出现问题的地方,这里不能忽略 

还有一个例子是


try {  
    stream.close()  
} catch(IOException e) {  
    // ignore  
}


你可以看到这里我们的IOException是忽略的,因为关闭不了,我们也没办法 -_-!!! 

意法半导体(中国)投资有限公司
2023-06-12 广告
STM32产品广泛应用于工业控制、消费电子、物联网、通讯设备、医疗服务、安防监控等应用领域,其优异的性能进一步推动了生活和产业智能化的发展。意法半导体致力于引领单片机技术和产品的创新,推动生态系统的建设,为用户提供满意的产品和技术服务。意法... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
xhe123xhw
2016-08-23
知道答主
回答量:11
采纳率:0%
帮助的人:2.4万
展开全部
io流异常。看看是不是文件名对不对,路径对不对。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最是蛋疼
2016-08-24
知道答主
回答量:3
采纳率:0%
帮助的人:3061
展开全部
情况多了 IOException是一个错误的大类,
下面还有各种错误小类ClosedChannelException,FileNotFoundException, FilerException, FileSystemException, HttpRetryException, IIOException....等等
你得列出详细情况才能知道到底是怎么回事
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
兄弟连教育
2018-08-04 · 百度知道合伙人官方认证企业
兄弟连教育
兄弟连教育成立于2006年,11年来专注IT职业教育,是国内专业的IT技术培训学校。2016年成功挂牌新三板(股票代码:839467)市值过亿。开设专注程序员培训专注php、Java、UI、云计算、Python、HTML5、
向TA提问
展开全部
如下例子代码:
FileInputStream is = new FileInputStream(".");
BufferedInputStream bis = new BufferedInputStream(is);
bis.close();

从设计模式上看:
java.io.BufferedInputStream是java.io.InputStream的装饰类。
BufferedInputStream装饰一个 InputStream 使之具有缓冲功能,is要关闭只需要调用最终被装饰出的对象的 close()方法即可,因为它最终会调用真正数据源对象的 close()方法。

BufferedInputStream的close方法中对InputStream进行了关闭,下面是jdk中附带的源代码:
java.io.BufferedInputStream的api:
close
public void close()throws IOException 关闭此输入流并释放与该流关联的所有系统资源。

因此,可以只调用外层流的close方法关闭其装饰的内层流,验证例子:

public static void main(String[] args) throws Exception {
FileOutputStream fos = new FileOutputStream("d:\\a.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
BufferedWriter bw = new BufferedWriter(osw);
bw.write("java IO close test");

bw.close();

}

验证ok
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式