Java基础 第四节 第十四课
【摘要】
IO 异常的处理
JDK7 前处理JDK7 的处理JDK9 的改进
JDK7 前处理
之前的学习中, 我们一直把异常抛出. 而实际开发中并不能这样处理, 建议使用try...catch.....
JDK7 前处理
之前的学习中, 我们一直把异常抛出. 而实际开发中并不能这样处理, 建议使用try...catch...finally
代码块, 处理异常部分. 代码展示:
import java.io.FileWriter;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
// 声明变量
FileWriter fw = null;
try{
// 创建流对象
fw = new FileWriter("read.txt");
// 写出数据
fw.write("程序员"); // 程序员
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
assert fw != null;
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
JDK7 的处理
我们还可以使用 JDK7 优化后的```try-with-resource``语句, 该语句确保了每个资源在语句结束时关闭. 所谓的资源 (resource) 是指在程序完成后, 必须关闭的对象.
格式:
try (创建流对象语句,如果多个,使用';'隔开) {
// 读写数据
} catch (IOException e) {
e.printStackTrace();
}
代码展示:
import java.io.FileWriter;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
// 创建流对象
try (FileWriter fw = new FileWriter("read.txt")){
// 写出数据
fw.write("程序员");
} catch (IOException e){
e.printStackTrace();
}
}
}
JDK9 的改进
JDK9 中```try-with-resource``的改进, 对于引入对象的方式, 支持的更加简洁. 被引入的对象, 同样可以自动关机, 无需手动 close, 我们来了解一下格式.
改进格式:
// 被final修饰的对象
final Resource resource1 = new Resource("resource1");
// 普通对象
Resource resource2 = new Resource("resource2");
// 引入方式:创建新的变量保存
try (Resource r1 = resource1;
Resource r2 = resource2) {
// 使用对象
}
改进后格式:
// 被final修饰的对象
final Resource resource1 = new Resource("resource1");
// 普通对象
Resource resource2 = new Resource("resource2");
// 引入方式:直接引入
try (resource1; resource2) {
// 使用对象
}
改进后, 代码展示:
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException {
// 创建流对象
final FileReader fr = new FileReader("read.txt");
FileWriter fw = new FileWriter("out.txt");
// 引入到try中
try(fr;fw){
// 定义变量
int b;
// 读取数据
while ((b = fr.read()) != -1){
// 写出数据
fw.write(b);
}
}catch (IOException e){
e.printStackTrace();
}
}
}
文章来源: iamarookie.blog.csdn.net,作者:我是小白呀,版权归原作者所有,如需转载,请联系作者。
原文链接:iamarookie.blog.csdn.net/article/details/110427550
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)