IOl流中的异常处理

/*
    在JDK7之前的IO流中的异常处理

    一定要保证释放资源的代码无论如何都会执行到。
    我们可以把这部分代码放入到finally代码块中
 */
public class Demo01Exception {
    public static void main(String[] args) {
        FileWriter fw = null;
        try {
            fw = new FileWriter("fiel07.txt");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //释放资源
            //如果fw输出流创建对象的时候出问题了,或者创建对象之前出问题了
            // 。那么这个流是不需要关。
            //如果创建之前出问题了,fw的值是null
            if (fw != null) {
                try {
                    fw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }


        }

    }
}
/*
        在jdk7之后,多了新的异常处理方式。 是另外一种try语句

        try(创建流对象) {
        使用这个流对象
        } catch(异常) {
        //捕获处理方式
        }
        不管程序的执行结果如何,都会调用在try中创建的流对象的close方法。
        注意:这个close方法,不需要我们手动去调用,系统会帮我们去调用

        try后面的小括号中也可以创建多个对象,多个对象之间使用分号隔开
        */
public class Demo02Exception {
    public static void main(String[] args) {
        try (FileWriter fw = new FileWriter("fiel08.txt")) {
            fw.write("你好");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_28761767/article/details/81115440