Io流的异常处理需要注意的点

今天学习了IO流,做了一个文件拷贝的练习,从这个练习中,我知道了在使用IO基本操作中,存在一些需要注意的一些地方,例如异常处理:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class TestCopy {
public static void main(String[] args) {
//输入路径
String src=“d:”+File.separator+“b”+File.separator+“a.png”;
//输出路径
String dest=“d:”+File.separator+“c”+File.separator+“b.png”;
//定义输入输出流变量
InputStream in=null;
OutputStream out=null;
try {
//创建输入流和输出流
out=new FileOutputStream(dest);
in = new FileInputStream(src);
int num;
byte [] b=new byte[1024*2];
//一边读一边写
while((num=in.read(b))!=-1){
out.write(b, 0, num);
}
} catch (FileNotFoundException e) {
//异常处理
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
}finally{
try {
if(in!=null)
in.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
try {
if(out!=null)
out.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
System.out.println(“拷贝完成”);
}
}

这是一个简单的文件拷贝程序。
我们写代码的时候要注意:

  1. InputStream 和OutputStream在初始化的时候为null值。因为这两个变量要写在几个代码块中,所以在函数最外面定义,并且赋初值为null才能使这个变量的访问范围足够这几个代码块都能访问。
    2.在异常处理为什么是 throw new RuntimeException(e)?因为程序一旦出现错误,我们就要让程序终止。用Exit和return让程序中止都有弊端,所以我们将异常信息封装并抛出,这样既实现了程序终止,也告诉了使用者出错的信息,让其可以处理
  2.  		if(in!=null)
     		in.close();
    

这个if条件紧随关闭操作,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值