Java IO异常处理方式
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异常处理方式的更多相关文章
- Java IO: 异常处理
原文链接 作者:Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 流与Reader和Writer在结束使用的时候,需要正确地关闭它们.通过调用close()方法 ...
- Java的异常处理方式
一.异常简介 异常结构图 Throwable是类,Exception和Error都继承了该类,error是因为系统内部错误或者资源耗尽错误,这种情况很少出现,而且error也不允许被抛出在Except ...
- Java_IO异常处理方式_入门小笔记
package IO; import java.io.FileWriter; import java.io.IOException; /** * IO异常处理方式 */ class FileWrite ...
- Java IO 字节流与字符流 (三)
概述 IO流用来处理设备之间的数据传输 Java对数据的操作时通过流的方式 Java用于操作流的对象都在IO包中 流按操作的数据分为:字节流和字符流 流按流向不同分为:输入流和输出流 IO流常用基类 ...
- 系统学习 Java IO (十三)----字符读写 Reader/Writer 及其常用子类
目录:系统学习 Java IO---- 目录,概览 Reader Reader 类是 Java IO API 中所有 Reader 子类的基类. Reader 类似于 InputStream ,除了它 ...
- Java IO: RandomAccessFile
原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) RandomAccessFile允许你来回读写文件,也可以替换文件中的某些部分.FileIn ...
- Java IO: FileInputStream
原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) FileInputStream可以以字节流的形式读取文件内容.FileInputStream ...
- Java IO: FileOutputStream
原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) FileOutputStream可以往文件里写入字节流,它是OutputStream的子类, ...
- Java IO教程
1 Java IO 教程 2 Java IO 概述 3 Java IO: 文件 4 Java IO: 管道 5 Java IO: 网络 6 Java IO: 字节和字符数组 7 Java IO: S ...
随机推荐
- [转载]一种高性能Hierarchical RBAC实现方案
背景 框图 上图中,Role和被设置Permission的Resource都是可以有任意层级继承关系的. 举例 举一个网站的例子来说: 如果,User表示网站用户:Role表示角色:Resource表 ...
- redis命令_ZRANGE
ZRANGE key start stop [WITHSCORES] 返回有序集 key 中,指定区间内的成员. 其中成员的位置按 score 值递增(从小到大)来排序. 具有相同 score 值的成 ...
- 利用jquery的contains实现搜索功能
/ jquery实现的搜索功能 $('#search_btn').on('click',function(){ var txt=$('#inputValue').val(); var value=$( ...
- Oracle之函数concat、lpad
一.引言 程序测试需要生成大量的测试数据,且测试数据有主键,主键自增,于是决定用存储过程来实现,经过半天的查资料终于完成了,记录之,学习之 二.存储过程 格式: CREATE PROCEDURE re ...
- CentOS6.2下安装中文输入法
因为在程序中需要输入中文,但是系统没有预装中文输入法,所以就安装一下,顺便记录 1.用root登录 ,或su root2.yum install "@Chinese Support" ...
- ORACLE建立物化视图
--使用 on commit 的方式建立物化视图 create materialized view emp_dept refresh on commit as select t.*,d.dname f ...
- impala+hdfs+csv格式文件
[创建目录]hdfs dfs -mkdir -p /user/hdfs/sample_data/csv/devicehdfs dfs -mkdir -p /user/hdfs/sample_data/ ...
- 关键字final 分别修饰一个类,一个方法,一个变量,各起什么作用
关键字final 分别修饰一个类,一个方法,一个变量,各起什么作用 解答:final修饰类是不能被继承 fianl修饰方法不能在子类中被覆盖 final修饰变量,称为常量,初始化以后不能改变值.
- 将Centos的yum源更换为国内的阿里云(163)源
阿里云是最近新出的一个镜像源.得益于阿里云的高速发展,这么大的需求,肯定会推出自己的镜像源.阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/ CentOS系统更换软 ...
- 2014年辛星解读css第一节
CSS是Cascading Style Sheets的缩写.即层叠样式表,它用于表现HTML的样式,即HTML仅仅是去写该网页有哪些内容,至于怎样去表现它们,由CSS去定制. ************ ...