什么时候会出现IOException?

问题描述

当用FileInputStrem的read方法读取一文件时,需要捕获IOException,那发生IOException的原因是什么?是读着读着突然文件被删了?还是什么其它原因?

解决方案

我觉得你的问题有3方面的意思1. 什么是IOException这个你可以看看APIhttp://download.oracle.com/javase/6/docs/api/java/io/IOException.html2. 广泛的说,什么时候会有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是忽略的,因为关闭不了,我们也没办法 -_-!!!
解决方案二:
楼上回答的很好,简单解释就好比你操作windows系统,操作一个文件时候,要删除一个文件,提示文件被其他用户使用不能删除,这样的错误,或者直接在运行中输入地址,然后提示错误文件无法找到,这些在程序中体现就是IOException
解决方案三:
主要是文件不存在的原因吧~~,或者磁盘不能写入 ~~只要在读写文件的时候出现问题,则会抛出IO异常

时间: 2024-07-29 19:08:24

什么时候会出现IOException?的相关文章

[Android]Parcelable encountered IOException writing serializable object (name = xxx)

Activity之间通过Intent传递值,支持基本数据类型和String对象及它们的数组对象byte.byte[].char.char[].boolean.boolean[].short.short[].int.int[].long.long[].float.float[].double.double[].String.String[],还有实现Serializable.Parcelable接口的类对象. package com.example.test; import android.os.

缺省构造函数不能处理隐式超构造函数抛出的异常类型 IOException。必须定义显式构造函数

问题描述 缺省构造函数不能处理隐式超构造函数抛出的异常类型 IOException.必须定义显式构造函数 int lastnum = getNum(source.getProperty(""fileName"")); public static int getNum(String Filename) throws IOException { InputStream myxls; myxls = new FileInputStream(Filename); sr =

在eclipse的console栏中一直显示java.io.IOException

在eclipse的console栏中一直显示java.io.IOException: 您的主机中的软件中止了一个已建立错误.具体如下. [2013-09-02 17:24:14 - ddmlib] 您的主机中的软件中止了一个已建立的连接. java.io.IOException: 您的主机中的软件中止了一个已建立的连接. at sun.nio.ch.SocketDispatcher.write0(Native Method) at sun.nio.ch.SocketDispatcher.writ

MR IOException: Type mismatch in key from map的处理

一.错误描述     执行MR出现如下错误,如执行命令是: hadoop jar /opt/cloudera/parcels/CDH-5.0.1-1.cdh5.0.1.p0.47/lib/hadoop-mapreduce/hadoop-streaming-2.3.0-cdh5.0.1.jar -input /test2 -output /test12 -mapper org.apache.hadoop.mapred.lib.TokenCountMapper -reducer org.apache

android-使用Geocoder时, 未处理类型IOException异常

问题描述 使用Geocoder时, 未处理类型IOException异常 代码: locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER 0 0 locationListener); Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); double longitude = loc

tomcat-java.io.IOException: APR error: -730054

问题描述 java.io.IOException: APR error: -730054 求教怎么解决!百度到的一个方法是清空.ser文件..可是我找不到.ser文件啊.. 解决方案 http://bbs.csdn.net/topics/390589117

jsp标签-在JSP中抛出java.io.IOException: tmpFile.renameTo(classFile) failed异常怎么解决

问题描述 在JSP中抛出java.io.IOException: tmpFile.renameTo(classFile) failed异常怎么解决 在JSP中抛出java.io.IOException: tmpFile.renameTo(classFile) failed异常怎么解决 解决方案 你确定不是控制台抛出而是JSP抛出! 解决方案二: java.io.IOException: tmpFile.renameTo(classFile) failedjava.io.IOException:

Execute failed: java.io.IOException: Cannot run program "sdk-linux/build-tools/22.0.0/aapt": error=2

在Linux上使用ant编译打包apk的时候,出现下面的错误及解决方法: 1./usr/local/android-sdk-linux/tools/ant/build.xml:698: Execute failed: java.io.IOException: Cannot run program "/usr/local/android-sdk-linux/build-tools/22.0.0/aapt": error=2, No such file or directory BUILD

hadoop错误,重新格式化namenode后,出现java.io.IOException Incompatible clusterIDs

错误:     java.io.IOException: Incompatible clusterIDs in /data/dfs/data: namenode clusterID = CID-d1448b9e-da0f-499e-b1d4-78cb18ecdebb; datanode clusterID = CID-ff0faa40-2940-4838-b321-98272eb0dee3 原因:     每次namenode format会重新创建一个namenodeId,而data目录包含了