分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

一、错误示例1
public void CopyFile()
{
FileReader fr = null;
FileWriter fw = null;
try
{
fr = new FileReader("c:\\xy1.txt"); // ①
fw = new FileWriter("c:\\xy2.txt"); // ②
char[] charBuffer = new char[1024];
int len = 0;
while ((len = fr.read(charBuffer)) != -1)
{
fw.write(charBuffer, 0, len);
}
System.out.println("文件复制成功");
}
catch (IOException e)
{
throw new RuntimeException("文件拷贝操作失败");
}
finally
{
try
{
fr.close(); // ③
fw.close(); // ④
}
catch (IOException e)
{
throw new RuntimeException("关闭失败");
}
}
}
若①中代码出错,fr根本就没有初始化,执行③的时候就会报空指针异常。②④同样是这个道理。

二、错误示例2
public void CopyFile()
{
FileReader fr = null;
FileWriter fw = null;
try
{
fr = new FileReader("c:\\xy1.txt"); // ①
fw = new FileWriter("c:\\xy2.txt"); // ②
char[] charBuffer = new char[1024]; 
int len = 0;
while ((len = fr.read(charBuffer)) != -1)
{
fw.write(charBuffer, 0, len);
}
System.out.println("文件复制成功");
}
catch (IOException e)
{
throw new RuntimeException("文件拷贝操作失败");
}
finally
{
try
{
if (null != fr)
{
fr.close(); // ③
}
if (null != fw)
{
fw.close(); // ④
}
}
catch (IOException e)
{
throw new RuntimeException("关闭失败"); // ⑤
}
}
}
加上是否为空的判断可以避免空指针异常。但是如果③执行出错,程序会直接进入⑤而④根本没有得到执行,导致无法关闭。

三、正确示例
public void CopyFile()
{
FileReader fr = null;
FileWriter fw = null;
try
{
fr = new FileReader("c:\\xy1.txt");
fw = new FileWriter("c:\\xy2.txt");
char[] charBuffer = new char[1024]; 
int len = 0;
while ((len = fr.read(charBuffer)) != -1)
{
fw.write(charBuffer, 0, len);
}
System.out.println("文件复制成功");
}
catch (IOException e)
{
throw new RuntimeException("文件拷贝操作失败");
}
finally
{
try
{
if (null != fr)
{
fr.close();
}
}
catch (IOException e)
{
throw new RuntimeException("关闭失败");
}

try
{
if (null != fw)
{
fw.close();
}
}
catch (IOException e)
{
throw new RuntimeException("关闭失败");
}
}
}

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

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

  1. java io关闭流失败,Java的IO操作中关闭流的注意点

    一.错误示例1 public void fileCopy() { FileReader fr = null; FileWriter fw = null; try { fr = new FileRead ...

  2. Java之IO,BIO,NIO,AIO

    2019独角兽企业重金招聘Python工程师标准>>> 参考文献一 IO基础知识回顾 java的核心库java.io提供了全面的IO接口.包括:文件读写.标准设备输出等.Java中I ...

  3. Java之IO,BIO,NIO,AIO知多少?

    开心一笑 [一女人:"我真不放心丈夫,他准备到湖中心水最深的地方把猫扔掉."邻居:"那有什么不放心的?"女人:"猫已回家一钟头了!"] 提出 ...

  4. java中io各种流的关闭顺序

    关闭该流并释放与之关联的所有资源.在关闭该流后,再调用 read().ready().mark().reset() 或 skip() 将抛出 IOException.关闭以前关闭的流无效. publi ...

  5. zipfile中怎么关闭流_深入学习JAVA -IO流详解

    (一)IO流基本概念 Java对数据的操作是通过流的方式,io是java中实现输入输出的基础,它可以很方便的完成数据的输入输出操作,Java把不同的输入输出抽象为流,通过流的方式允许Java程序使用相 ...

  6. 关闭流时,抛出异常:java.io.IOException: Stream Closed

    首先,这个异常大部分原因是因为关闭流的顺序导致的,下面看一下官方API的描述 void close()throws IOExceptionCloses this stream and releases ...

  7. java 常见io流 万字详解

    文章目录 1.IO简介 1.1什么是IO流. 1.2数据源(Data Source) 1.3什么是流 1.4处理对象分类 1.5 java四大io抽象类及其他 1.6inputStream 1.61简 ...

  8. Java输入输出(io)流详解、图解

    stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源.在Java的IO中,所有的stream(包括Inputstream和Out stream)都包括两种类型: (1)字节流 ...

  9. java中io流实现哪个接口_第55节:Java当中的IO流-时间api(下)-上

    标题图 Java当中的IO流(下)-上日期和时间日期类:java.util.Date 系统时间:long time = System.currentTimeMillis();public class  ...

  10. Java基础—IO流

    第一讲   IO概述 1. 流的概念 IO流即InputOutput的缩写,在Java中IO流用来处理设备之间的数据传输,Java对数据的操作是通过IO流的方式, 我们可以把IO流抽象的当作一根管道, ...

最新文章

  1. Delphi中的容器类(二)
  2. MapReduce的统计和排序功能
  3. Opengl-基本概念-着色器(都是固定的)
  4. 根据 xsd 生成 jaxb java 类
  5. Codeforces 1167E 尺取法
  6. 使用Redis存取数据+数据库存取(spring+java)
  7. jQuery介绍及各版本介绍(适合新手查看)
  8. opensips mysql_opensips中使用mysql实现用户认证
  9. 腾讯云学生服务器9元/月
  10. 01英语语法-基本句型及补语
  11. 写引流和游戏脚本用什么语言和工具好?网上都有哪些脚本语言?
  12. 中国超级计算机神威 上市公司,神威、天河、曙光三巨头引领中国超级计算机发展...
  13. 卡西欧计算机亮度,卡西欧怎么调3秒灯
  14. Adobe Dreamweaver 的基础知识
  15. 这款开源终端工具逼格更高!比 Xshell 好用
  16. oracle取出生僻字显示乱码,python cx_Oracle 查询到生僻字报错问题处理
  17. 2021年南阳市五中高考成绩查询,2021年南阳高中录取分数线是多少及高中排名榜...
  18. Linux终端设备文件介绍
  19. 备战一年,终于斩获腾讯T3,我坚信成功是可以复制的
  20. 武汉烽火通信软件工程师-Android面试经历

热门文章

  1. Kernel: Do NOT use global variable as possible as you can 尽量不使用全局变量
  2. R的可视化の basic plot
  3. 李彦宏被泼水,是“多数人的暴力”还是“群众的宣泄”
  4. laravel插入数据时报 502 Bad Gateway
  5. 《Pyhton语言程序设计》_第7章_对象和类
  6. 字符串匹配-kmp算法
  7. Django之tag标签和filter标签
  8. C++ Primer 第五版读书笔记
  9. Unity游戏框架设计
  10. zencart 1.5.1 英文原版 安装前和安装后目录文件的变换