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

io流注意事项

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

Java的IO操作中关闭流的注意点

一、错误示例1 public void fileCopy() { FileReader fr = null; FileWriter fw = null; try { fr = new FileRead...
  • woshixuye
  • woshixuye
  • 2014年04月12日 18:04
  • 13643

JDK1.7中的try catch新的处理方式

/** * JDK7出现了一个新的异常处理方案: * try { * * } catch (异常1 | 异常2 ... 变量) { * * } * * 注意:这个方法虽然简洁,...
  • zhuhai__yizhi
  • zhuhai__yizhi
  • 2015年03月24日 11:16
  • 1506

IO流---异常处理机制

——- android培训、java培训、期待与您交流! ———- IO异常处理机制 异常就是可以预见的错误,java中所有的异常都从Throwable类中继承, 不过在一般情况下都会由 Exce...
  • movingleft
  • movingleft
  • 2015年06月26日 23:57
  • 1775

开发中使用RabbitMQ的注意事项

使用消息队列处理消息的时候,我们可能会遇到以下问题: 消息处理失败消息体本身有误消息重复处理消息丢失 对于消息处理失败,有可能有由于网络波动导致的数据处理异常,待网络稳定时消息就会正常处理,对...
  • qq_28334711
  • qq_28334711
  • 2017年03月09日 17:20
  • 1763

IO流_递归概述和注意事项

package cn.itcast_01; /* * 递归:方法定义中调用方法本身现象 * * 方法的嵌套调用,这不是递归 * Math.max(Math.max(a,b),c); * ...
  • L1585931143
  • L1585931143
  • 2017年02月07日 12:35
  • 131

io流注意事项

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

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

【IO----ObjectInputStream的使用方法及其注意事项】 一、代码及笔记演示 package ioDemo.inputStream; import java.io.File; i...
  • qq_35415600
  • qq_35415600
  • 2017年03月19日 12:52
  • 785

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

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

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

为搞清IO结构,首先看看上拉和下拉电阻的作用。 一、上拉电阻     上拉就是将不确定的信号通过一个电阻钳位在高电平!电阻同时起限流作用!下拉同理! 上拉电阻是用来解决总线驱动能力不足时...
  • dearwind153
  • dearwind153
  • 2012年04月03日 12:04
  • 2982
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于IO流中异常的注意事项
举报原因:
原因补充:

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