• IO异常的处理


    JDK7前处理
    之前的入门练习,我们一直把异常抛出,而实际开发中并不能这样处理,建议使用 try...catch...finally 代码
    块,处理异常部分,代码使用演示:
    public class HandleException1 {
        public static void main(String[] args) {
            // 声明变量
            FileWriter fw = null;
            try {
                //创建流对象 fw = new FileWriter("fw.txt");
                // 写出数据 fw.write("黑马程序员"); //黑马程序员
            } catch (IOException e) {
                e.printStackTrace();
            }
            finally {
                try {
                    if (fw != null) {
                        fw.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    
    JDK7的处理(扩展知识点了解内容)
    还可以使用JDK7优化后的 try-with-resource 语句,该语句确保了每个资源在语句结束时关闭。
        所谓的资源 (resource)是指在程序完成后,必须关闭的对象。
        格式:
        try (创建流对象语句,如果多个,使用';'隔开) {
            // 读写数据
        } catch (IOException e) {
            e.printStackTrace();
        }
    代码使用演示: public class HandleException2 {
        public static void main(String[] args) {
            // 创建流对象
            try ( FileWriter fw = new FileWriter("fw.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) {
        // 使用对象
    }
    改进后,代码使用演示:
    public class TryDemo {
        public static void main(String[] args) throws IOException {
            // 创建流对象
            final FileReader fr = new FileReader("in.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();
            }
        }
    }
  • 相关阅读:
    java内联函数
    jvm垃圾回收
    jvm内存管理
    java进程和线程的区别
    jvm
    简单易学的SSM(Spring+SpringMVC+MyBatis)整合
    Spring之声明式事务
    SpringMVC知识点小结
    Servlet之文件的上传与下载
    java使用字节流和字符流实现文件复制
  • 原文地址:https://www.cnblogs.com/King-boy/p/11236404.html
Copyright © 2020-2023  润新知