【IO流系列】IOException IO流异常
package text.IOStream.IOException;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/* try...catch异常处理
基本做法:try...catch...finally
利用try...catch...finally捕获拷贝文件中代码出现的异常
格式:
try {
//可能出现异常的代码
} catch () {
//可能出现的异常
} finally {
//一定会执行的代码
}
注意:被finally控制的语句一定会执行,除非JVM退出
*/
public class IOException01 {
public static void main(String[] args) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
//创建对象
fis = new FileInputStream("D:\\JavaCode\\code\\codeText01\\src\\text\\IOStream\\FileInputStream\\FileInputStream03\\");
fos = new FileOutputStream("D:\\JavaCode\\code\\codeText01\\src\\text\\IOStream\\FileInputStream\\FileInputStream03\\");
//拷贝数据
//核心思想:边读边写
int b;
while ((b = fis.read()) != -1) {
fos.write(b);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
//释放资源
//规则:先开的流最后关闭
if (fos != null) { //判断直接输出流对象是否为空,为空则不需要释放资源(表示内存-->程序的通道没搭建上)
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fis != null) { //判断字节输入流对象是否为空,为空则不需要释放资源(表示程序-->内存的通道没搭建上)
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}