public class IOException{

    // 获取系统默认的行分隔符
private static final String LINE_SEPARATOR = System.getProperty("line.separator"); public static void main(String[] args){ try{
FileWriter fw = new FileWriter("test.md"); fw.write("abc"+LINE_SEPARATOR+"haha"); } catch (IOException){
System.out.println(e.toString());
} finally{
fw.close(); // 此时, fw 是局部变量, 只在 try 内部有效, 此时 fw 属于未定义变量
}
}
} // 改进第一步: public class IOException{ // 获取系统默认的行分隔符
private static final String LINE_SEPARATOR = System.getProperty("line.separator"); public static void main(String[] args){ FileWriter fw = null; // 创建流对象
try{
// 流对象初始化
fw = new FileWriter("k:\\test.md"); fw.write("abc"+LINE_SEPARATOR+"haha"); } catch (IOException){
System.out.println(e.toString());
} finally{
try{
fw.close();// 此处有可能出现关闭失败的异常, 所以也许要 try catch
} catch (IOException e){
throw new RuntimeException("关闭失败");
}
}
}
} // 运行上述程序: public class IOException{ // 获取系统默认的行分隔符
private static final String LINE_SEPARATOR = System.getProperty("line.separator"); public static void main(String[] args){ FileWriter fw = null;
try{
// 流对象初始化
fw = new FileWriter("k:\\test.md"); // 此处出现异常: FileNotFoundException
// 该异常是 IOException 的子类 fw.write("abc"+LINE_SEPARATOR+"haha"); } catch (IOException){
System.out.println(e.toString);
} finally{
try{
fw.close(); // 由于文件没有创建成功, 因此此处抛出 NUllPointerException
} catch (IOException e){
throw new RuntimeException("关闭失败");
}
}
}
} // 改进第二步: public class IOException{ // 获取系统默认的行分隔符
private static final String LINE_SEPARATOR = System.getProperty("line.separator"); public static void main(String[] args){ FileWriter fw = null;
try{
// 流对象初始化
fw = new FileWriter("k:\\test.md"); // 此处出现异常: FileNotFoundException
// 该异常是 IOException 的子类 fw.write("abc"+LINE_SEPARATOR+"haha"); } catch (IOException){
System.out.println(e.toString);
} finally{
if(fw != null) // 增加一条判断语句
try{
fw.close();
} catch (IOException e){
throw new RuntimeException("关闭失败");
}
}
}
}

参考资料:

Java IO异常处理方式的更多相关文章

  1. Java IO: 异常处理

    原文链接 作者:Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 流与Reader和Writer在结束使用的时候,需要正确地关闭它们.通过调用close()方法 ...

  2. Java的异常处理方式

    一.异常简介 异常结构图 Throwable是类,Exception和Error都继承了该类,error是因为系统内部错误或者资源耗尽错误,这种情况很少出现,而且error也不允许被抛出在Except ...

  3. Java_IO异常处理方式_入门小笔记

    package IO; import java.io.FileWriter; import java.io.IOException; /** * IO异常处理方式 */ class FileWrite ...

  4. Java IO 字节流与字符流 (三)

    概述 IO流用来处理设备之间的数据传输 Java对数据的操作时通过流的方式 Java用于操作流的对象都在IO包中 流按操作的数据分为:字节流和字符流 流按流向不同分为:输入流和输出流 IO流常用基类 ...

  5. 系统学习 Java IO (十三)----字符读写 Reader/Writer 及其常用子类

    目录:系统学习 Java IO---- 目录,概览 Reader Reader 类是 Java IO API 中所有 Reader 子类的基类. Reader 类似于 InputStream ,除了它 ...

  6. Java IO: RandomAccessFile

    原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) RandomAccessFile允许你来回读写文件,也可以替换文件中的某些部分.FileIn ...

  7. Java IO: FileInputStream

    原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) FileInputStream可以以字节流的形式读取文件内容.FileInputStream ...

  8. Java IO: FileOutputStream

    原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) FileOutputStream可以往文件里写入字节流,它是OutputStream的子类, ...

  9. Java IO教程

    1  Java IO 教程 2 Java IO 概述 3 Java IO: 文件 4 Java IO: 管道 5 Java IO: 网络 6 Java IO: 字节和字符数组 7 Java IO: S ...

随机推荐

  1. 编程算法 - 高速排序算法 代码(C)

    高速排序算法 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 经典的高速排序算法, 作为一个编程者, 不论什么时候都要完整的手写. 代码: /* * m ...

  2. Bash中的空格

    空格,一个看不见的字符,很不起眼,很多人经常忽略它,导致代码出错,却还找不着北. 先了解下bash中什么时候该用空格,什么时候不该用. . 等号赋值两边不能有空格 . 命令与选项之间需要空格 . 管道 ...

  3. 【ZT】NUMA架构的CPU -- 你真的用好了么?

    本文从NUMA的介绍引出常见的NUMA使用中的陷阱,继而讨论对于NUMA系统的优化方法和一些值得关注的方向. 文章欢迎转载,但转载时请保留本段文字,并置于文章的顶部 作者:卢钧轶(cenalulu) ...

  4. python2和python3中str,bytes区别

    python2中,有basestring.str.bytes.unicode四种类型 其中str == bytes ,basestring = (str,unicode) >>> i ...

  5. poj 1475 Pushing Boxes 推箱子(双bfs)

    题目链接:http://poj.org/problem?id=1475 一组测试数据: 7 3 ### .T. .S. #B# ... ... ... 结果: //解题思路:先判断盒子的四周是不是有空 ...

  6. 您的位置:首页 » IOS » iOS中全局悬浮按钮,类似IPhone中的AssistiveTouch iOS中全局悬浮按钮,类似IPhone中的AssistiveTouch

    原文地址:http://blog.5ibc.net/p/86562.html 前提:当时看到别人写过这个类似AssistiveTouch的demo,但是有问题,第一改变不了位置.第二切换页面后无法使用 ...

  7. ExtFormReturn,ext

    package cn.edu.hbcf.common.vo; public class ExtFormReturn { /** * 是否成功 */ private boolean success; / ...

  8. httpd-2.2.22安装

    cgi部分共分三部分:html,cgi和服务器(httpd). 首先介绍httpd安装: 1.  软件包:httpd-2.2.22.tar.gz 系统:3.8.0-44-generic #66~pre ...

  9. Eqs - poj 1840(hash)

    题意:对于方程:a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0 ,有xi∈[-50,50], xi != 0, any i∈{1,2,3,4,5}. 现在给出a1,a2,a3, ...

  10. jsp时间格式化

    <fmt:formatDate value="${start.time }" pattern="HH:mm" />