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. 简单记录一次ORA-00600 kcratr_nab_less_than_odr

    当前具体报错已经没有了,仅仅有对应图.參考EYGLE一篇文章中数据: 1.故障现象 数据库版本号11G,错误类似下面: ORA-00600: 内部错误代码, 參数: [kcratr_nab_less_ ...

  2. WatiN自动化测试

    简介 WatiN - Watir的.NET版: http://watin.sourceforge.net/ Welcome at the WatiN (pronounced as What-in) w ...

  3. Ubuntu编绎 Objective C程序

    1.安装如下组件 sudo apt-get install如下组件:build-essential gobjc gobjc++ gnustep-devel 2.在工作目录建立下如Shell脚本,并更改 ...

  4. eclipse配置代码自动补全auto-completion

    你如果使用的是JAVA EE的模式,就这样配置: 1. Window>Preferences>Java>Editor>Content Assist>Auto Activa ...

  5. hdu 1022 Train Problem

    Train Problem I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  6. flume+kafka+storm打通过程

    0.有的地方我已经整理成脚本了,有的命令是脚本里面截取的 1.启动hadoop和yarn $HADOOP_HOME/sbin/start-dfs.sh;$HADOOP_HOME/sbin/start- ...

  7. linux--jdk安装与配置

    此处以centos下jdkjdk1.8.0_161安装(此处为rpm安装事例)为例 1.java官网下载页找到对应版本的jdk下载链接地址 2.下载对应版本的rmp包到服务器,执行如下指令: wget ...

  8. php linux 创建文件夹权限问题

    $path = "DataMsg/"; if(is_dir($path)==false){ @mkdir($path,0777); } windows 上创建没问题.但在linux ...

  9. JavaScript能否操作cookie和session?

    JavaScript能否操作cookie和session? 解答:JavaScript可以操作cookie,但是不能操作session

  10. Accept-Encoding 使用

    [总结] 想要获得正确网页内容,而非乱码的话,就有两种方式了: 1.不要设置Accept-Encoding的Header //req.Headers.Add("Accept-Encoding ...