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

原创 2012年03月29日 00:39:55

---------------------- 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培训、期待与您交流! ----------------------

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

android 存储及注意事项!(java io流,和sharedperference存储)

shareperfererences 存储和利用IO流存储到系统文件夹下的方式

io流注意事项

一:字节输出流 流对象的构造器可以创建文件,但是如果改文件已经存在,就直接覆盖。 例如:如果c盘中已经存在a.txt这个文件并且里面有存有hello...一些文字,现在再创建下面流对象之后 FileO...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

linux IO刷新机制sync, fsync, fdatasync和fflush详解及注意事项

Linux,unix在内核中设有 缓冲区高速缓冲或页面高速缓冲,大多数磁盘I/O都通过缓冲进行,采用延迟写技术。 sync:将所有修改过的快缓存区排入写队列,然后返回,并不等待实际写磁盘操作结束 fs...

【IO】ObjectInputStream的使用方法及其注意事项

【IO----ObjectInputStream的使用方法及其注意事项】 一、代码及笔记演示 package ioDemo.inputStream; import java.io.File; i...

AVR单片机IO使用注意事项及结构全攻略

为搞清IO结构,首先看看上拉和下拉电阻的作用。 一、上拉电阻     上拉就是将不确定的信号通过一个电阻钳位在高电平!电阻同时起限流作用!下拉同理! 上拉电阻是用来解决总线驱动能力不足时...

关于打包自定义标签,并导入项目使用时,出现java.lang.NoClassDefFoundError: JspException异常,解决方法和注意事项!

坑死我了啊!!!!事先不知道,还以为哪里出了bug,百度这个异常可能出现的原因,都没解决,最后百度关键字“打包自定义标签库 出现异常”出现的第一个链接才解决的,Stack Overflow上也有关于这...

java中异常的使用及注意事项

异常:在运行时发生的不正常情况public class ExceptionDemo{ public static void main(String[]args){ int []...

C++构造函数和析构函数中抛出异常的注意事项

从语法上来说,构造函数和析构函数都可以抛出异常。但从逻辑上和风险控制上,构造函数和析构函数中尽量不要抛出异常,万不得已,一定要注意防止资源泄露。在析构函数中抛出异常还要注意栈展开带来的程序崩溃。 1...

hibernate4 和 spring3 整合注意事项 否则java.lang.NoSuchMethodError异常 - lihui_yy

最近一直在研究S2SH开发框架,把三部分分别看完之后开始整合,发现由于 hibernate 高版本已经又完善了好多功能,导致与之前跟 spring 整合的方法有些出入。 先说一下与 hibernat...

.NET进行异常处理时的原则注意事项

本文导航:.NET进行异常处理时的原则注意事项 写在前面try...catch...finally知道何时设置 Try/Catch 块。不要把异常处理方法作为从函数中返回信息的手段为那些不该被忽...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)