关于IO流中异常的注意事项

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

/*
IO流中异常注意事项:
首先:在实例化一个流对象时,会给对象传一个对象,如果传入的对象是不存在的那么就会产生异常,所以必    须要try...catch异常;
第二:在try...catch的时候,定义流对象的引用变量必须放在try...catch语句块外面,
   因为这两个引用变量是全局常量,如果过在语句块中,他们就变成了局部变量了;
第三:如果两个对象在初始化的时候发生了异常,余下的代码运行也不会有任何意义,所以可以一起放到                      try...catch代码块中
第四:一个流对象在运行完毕后,必须要把流资源关闭掉,我们知道无论前面程序如何finally语句块都会执                行,所以我们就把
 关闭流资源的语句放到finally语句块当中;
第五:如果初始化的时候,流对象就没有成功,这时会抛出异常,但finally里面的程序依旧会继续运行,但根本            就没有流对象,怎么可能关闭呢,这样就会出现空指针异常,所以在进行流资源关闭是,务必要对流资源          对象进行判断,确定流资源对象的存在;
*/



import java.io.*;


class IOExceptionDemo
{
public static void main(String[] args)
{
FileReader fr = null;//这两个对象必须要定义在语句块外面,因为是全局变量
FileWriter fw = null;


try
{
fr = new FileReader("a.txt");
fw = new FileWriter("b.txt");

char [] ch = new char[1024];//[]里的数字最好是1024的整数倍,具体大小,依据要操作的文件大小而定
int count = 0;
while((count=fr.read(ch))!=-1)
{
fw.write(ch,0,count);//从数组里打印数据,只从0到读取的长度,这样节省时间
fw.flush();
}
}
catch (IOException e)
{
System.out.println(e.toString());
}

finally//当finally语句快中要同是关闭多个流资源是,每个流资源都必须是分别try...catch的,不可以放在一个try...catch语句块中
{
try
{
if (fw != null)
fw.close();
}
catch (IOException e)
{
System.out.println(e.toString());
}
try
{
if (fr != null)//这句话必须要有,这样可以防止流资源对象不存在产生的异常
fr.close();
}
catch (IOException e)
{
System.out.println(e.toString());
}


}


}
}


---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值