JavaSE-19.1.4复制文件的异常处理

Posted yub4by

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE-19.1.4复制文件的异常处理相关的知识,希望对你有一定的参考价值。

  1 package day10.lesson1.p4;
  2 
  3 import java.io.*;
  4 
  5 /*
  6 1.4 复制文件的异常处理
  7  */
  8 public class CopyFileDemo {
  9     public static void main(String[] args) {
 10 
 11     }
 12 
 13 
 14     //抛出处理
 15     private static void method1() throws IOException {
 16         FileReader fr = new FileReader("fr.txt");
 17         FileWriter fw = new FileWriter("fw.txt");
 18 
 19         char[] chars = new char[1024];
 20         int len;
 21         while ((len=fr.read(chars)) != -1){
 22             fw.write(chars, 0, len);
 23         }
 24 
 25         fw.close();
 26         fr.close();
 27     }
 28 
 29 
 30     //try-catch-finally处理
 31     private static void method2() {
 32         FileReader fr = null;
 33         FileWriter fw = null;
 34         try {
 35             fr = new FileReader("fr.txt");
 36             fw = new FileWriter("fw.txt");
 37 
 38             char[] chars = new char[1024];
 39             int len;
 40             while ((len=fr.read(chars)) != -1){
 41                 fw.write(chars, 0, len);
 42             }
 43         }catch (IOException e){
 44             e.printStackTrace();
 45         }finally {
 46             if(fw != null){
 47                 try {
 48                     fw.close();
 49                 } catch (IOException e) {
 50                     e.printStackTrace();
 51                 }
 52             }
 53             if(fr != null){
 54                 try {
 55                     fr.close();
 56                 } catch (IOException e) {
 57                     e.printStackTrace();
 58                 }
 59             }
 60         }
 61         //这是标准流程
 62     }
 63 
 64 
 65     //JDK7改进处理方案
 66     private static void method3() {
 67         try(FileReader fr = new FileReader("fr.txt");
 68             FileWriter fw = new FileWriter("fw.txt")
 69             ){
 70             char[] chars = new char[1024];
 71             int len;
 72             while ((len=fr.read(chars)) != -1){
 73                 fw.write(chars, 0, len);
 74             }
 75         }catch (IOException e){
 76             e.printStackTrace();
 77         }
 78         //JDK7:try(){}catch(){}会自动释放资源
 79         //相比于JDK9处理方案,这种好一点,值得推荐
 80     }
 81 
 82 
 83     //JDK9改进处理方案
 84     /*private static void method4() throws IOException{ //对于下两行需要抛出异常
 85         FileReader fr = new FileReader("fr.txt");
 86         FileWriter fw = new FileWriter("fw.txt");
 87 
 88         try(fr;fw){
 89             char[] chars = new char[1024];
 90             int len;
 91             while ((len=fr.read(chars)) != -1){
 92                 fw.write(chars, 0, len);
 93             }
 94         }catch (IOException e){
 95             e.printStackTrace();
 96         }
 97         //JDK9:try(){}catch(){}会自动释放资源
 98         //本地环境JKD8,编译时IDEA报错
 99     }*/
100 
101 
102 }

 

以上是关于JavaSE-19.1.4复制文件的异常处理的主要内容,如果未能解决你的问题,请参考以下文章

复制文件的异常处理

订阅发生异常代理消息代码 20598,个人总结

System.AccessViolationException”类型的未经处理的异常在 System.Data.dll 中发生。其它信息:尝试读取或写入受保护的内存。这通常指示其它内存已损坏。(代码片

[Java基础]复制文件的异常处理try...catch...finally的做法

异常处理——显示发生错误的行号? [复制]

Google PlayAPK 扩展包 ( 2021年09月02日最新处理方案 | 内部测试链接 | 安装 Google Play 中带 扩展文件 的 APK 安装包 | 验证下载的扩展文件 )(代码片