当前位置:首页 > Java技术 > 复制文件的异常处理

复制文件的异常处理

2022年08月05日 08:26:54Java技术2

调用流对象的时候,抛出了异常,这时就需要需要处理异常,下面是处理异常的方式

直接抛出去 

package com.testIO;

import java.io.*;

/**
 * @author 林高禄
 * @create 2020-05-12-14:42
 */
public class IOExceptionDemo {
    public static void main(String[] args) throws IOException{
        mathod();
    }
    private static void mathod() throws IOException {
        FileReader fr = new FileReader("fr.txt");
        FileWriter fw = new FileWriter("fw.txt");
        char[] chs = new char[1024];
        int len;
        while ((len = fr.read()) != -1){
            fw.write(chs,0,len);
        }
        fw.close();
        fr.close();
    }
}

 

最标准的写法,用try...catch...finally

 

package com.testIO;

import java.io.*;

/**
 * @author 林高禄
 * @create 2020-05-12-14:42
 */
public class IOExceptionDemo {
    public static void main(String[] args) {
        mathod();
    }

    private static void mathod() {
        FileReader fr = null;
        FileWriter fw = null;
        try {
            fr = new FileReader("fr.txt");
            fw = new FileWriter("fw.txt");
            char[] chs = new char[1024];
            int len;
            while ((len = fr.read()) != -1) {
                fw.write(chs, 0, len);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fw != null) {
                try {
                    fw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (fr != null) {
                try {
                    fr.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

JDK7的改进方案,try()括号内生成流对象,会自动关闭

package com.testIO;

import java.io.*;

/**
 * @author 林高禄
 * @create 2020-05-12-14:42
 */
public class IOExceptionDemo {
    public static void main(String[] args) {
        mathod();
    }

    private static void mathod() {
        try (FileReader fr = new FileReader("fr.txt");
             FileWriter fw = new FileWriter("fw.txt");) {

            char[] chs = new char[1024];
            int len;
            while ((len = fr.read()) != -1) {
                fw.write(chs, 0, len);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

JDK9的改进方案,try()括号内不那么麻烦了,但是还是需要抛出异常

package com.testIO;

import java.io.*;

/**
 * @author 林高禄
 * @create 2020-05-12-14:42
 */
public class IOExceptionDemo {
    public static void main(String[] args) throws IOException {
        mathod();
    }

    private static void mathod() throws IOException {
        FileReader fr = new FileReader("fr.txt");
        FileWriter fw = new FileWriter("fw.txt");
        try (fr; fw) {
            char[] chs = new char[1024];
            int len;
            while ((len = fr.read()) != -1) {
                fw.write(chs, 0, len);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

相比之下,JDK7的改进方案是最好的

 

 

 

 

作者:深知她是一场梦
来源链接:https://blog.csdn.net/lgl782519197/article/details/106076111

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/17656.html

标签: Exception
分享给朋友:

“复制文件的异常处理” 的相关文章

TooManyResultsException: Expected one result (or null) to be returned by selectOne()

mybaties错误:nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be return...

报org.mybatis.spring.MyBatisSystemException: nested exception is `***.ReflectionException解决方法!

错误描述: 1.数据库中表(se_seat)设计 字段 数据类型 seSeatId varchar seSeatName...

Mybatis报错org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.Bu

Mybatis报错org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.Bu

使用spring+Mybatis報錯org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Er...

java异常处理中的返回值

java异常处理中的返回值

项目github地址:bitcarmanlee easy-algorithm-interview-and-practice 欢迎大家star,留言,一起学习进步 1.try-catch中的返回值 java代码中,有各种各样的try-catch...

java异常详细讲解

一起学习 1. 异常机制 1.1 异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。 1.2 传统的处理异常的办法是,函数返...

Java异常处理和设计

Java异常处理和设计

#cnblogs_post_body h2 { background: rgba(64, 108, 164, 1) !important; margin: 15px 0 !important; padding: 5px 0 5px 20px; border-radius: 4px !i...

Mybatis异常处理之MySQL Connector Java] will not be managed by Spring

Mybatis异常处理之MySQL Connector Java] will not be managed by Spring

很长时间没写后台代码有点生疏了,这不今天又出点小插曲,写个文章记录下。 由于要上传点数据到后台,顺手整了个mybatis+springmvc。在保存数据时出现了异常。 Creating a new SqlSession SqlSession [org.apache...

深入理解java异常处理

深入理解java异常处理

文章目录 一.异常的介绍 二.分类...

java mybatis org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error qu...

Java中的异常处理:何时抛出异常,何时捕获异常,何时处理异常?

Java中的异常处理:何时抛出异常,何时捕获异常,何时处理异常?

1.具体明确(异常类型) 2.提早抛出(1抛更具体的异常类型,2 更好的定位) 3.延迟捕获 (在能处理的时候捕获,而不是把它‘吃掉’ Java中的异常处理:何时抛出异常,何时捕获异常? 2017-06-07   1 异常分类...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。