import java.io.*;
class Demo7{
public static void main(String[] args){
test();
}
static void test(){
FileInputStream fileInputStream = null;
FileOutputStream fileOutputStream = null;
try {
fileInputStream = new FileInputStream(new File("C:/Users/Mrico/Desktop/day02/22.jpg"));
File file = new File("C:/Users/Mrico/Desktop/day01/22.jpg");
fileOutputStream = new FileOutputStream(file,true);
byte[] buf = new byte[1024];
int length = 0;
while ((length = fileInputStream.read(buf))!= -1) {
fileOutputStream.write(buf,0,length);
}
} catch (IOException e) {
System.out.println("拷贝文件出错啦");
throw new RuntimeException(e);
/*throw阻止后面代码的执行,
因为后面的代码执行也没有意义,
同时需要通知调用者这里出现了错误
同时把真正的e包装进Runtime
(这样做的目的是为了省区方法上的声明异常,
以及调用者也无需声明异常)
*/
}finally {
try {
if (fileOutputStream != null) {/*假设fileOutputStream初始化失败则为空。
证明读取文件没读取到就无需关闭流,
所以要加判断是不是为空。*/
fileOutputStream.close();
System.out.println("关闭输出流成功啦");
}
} catch (IOException e) {
System.out.println("关闭输出流失败啦");
throw new RuntimeException(e);
}finally {
if (fileInputStream != null) {
try {
fileInputStream.close();
System.out.println("关闭输入流成功啦");
} catch (IOException e) {
System.out.println("关闭输入流失败");
}
}
}
}
}
}
关于IO流的输入输出流同时存在应如何处理异常?
最新推荐文章于 2021-12-07 21:00:00 发布