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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!