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. atitit.提升性能AppCache

    atitit.提升性能AppCache 1.1. 起源1 2. 离线存储2 3. AppCache2 3.1. Appcache事件点如图2 3.2. Manifest文件4 3.3. 自动化工具4 ...

  2. Atitit.index manager api design 索引管理api设计

    Atitit.index manager api design 索引管理api设计 1. kw 1 1.1. 索引类型 unique,normal,fulltxt 1 1.2. 聚集索引(cluste ...

  3. python学习之os.walk()

    os.walk(top,topdown = True,onerror = None,followlinks = False) 参数 top -- 根目录下的每一个文件夹(包含它自己), 产生3-元组 ...

  4. CSU 1335: 高桥和低桥 (二分查找,树状数组)

    Description 有个脑筋急转弯是这样的:有距离很近的一高一低两座桥,两次洪水之后高桥被淹了两次,低桥却只被淹了一次,为什么?答案是:因为低桥太低了,第一次洪水退去之后水位依然在低桥之上,所以不 ...

  5. 写一个简单的form表单,当光标离开表单的时候表单的值发送给后台

    <body> <form action="index.php"> <input type="text" name="tx ...

  6. oracle中查看正在运行的并行进程

    select count(*) from v$px_process a where a.STATUS='IN USE';

  7. 15.3.14 DP练习2

    拦截导弹 题目 某国为了防御敌国的导弹突击,发展出一种导弹拦截系统. 可是这样的导弹拦截系统有一个缺陷:尽管它的第一发炮弹可以到达随意的高度.可是以后每一发炮弹都不能高于前一发的高度. 某天,雷达捕捉 ...

  8. shell 颜色

    PS1='\[\e[33;1m\][\u@\h \W]\\$ \[\e[m\]' echo -e "\033[30m 黑色字oldboy trainning \033[0m" ec ...

  9. Linux基础命令(2)

      Fskey servername scp命令 grep 命令 find 命令 echo 命令 xargs 命令 file 命令 cat 命令 /dev/null tar 打包 gzip 压缩 示例 ...

  10. css3 一个简单的静态立方体

    <meta charset="utf8"> <style> .cube { position: absolute; left: 50%; top: 250p ...