From 077745e89228116961b462ff7175a45389d9c27c Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sat, 21 Mar 2026 15:37:22 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E9=98=B6day09-JDK7,9=E7=9A=84IO?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/inmind/io_exception05/Demo14.java | 47 +++++++++++++++++++ .../src/com/inmind/io_exception05/Demo15.java | 33 +++++++++++++ .../src/com/inmind/io_exception05/Demo16.java | 18 +++++++ .../src/com/inmind/io_exception05/Demo17.java | 27 +++++++++++ .../com/inmind/io_exception05/Student.java | 8 ++++ 5 files changed, 133 insertions(+) create mode 100644 javaSE-day09/src/com/inmind/io_exception05/Demo14.java create mode 100644 javaSE-day09/src/com/inmind/io_exception05/Demo15.java create mode 100644 javaSE-day09/src/com/inmind/io_exception05/Demo16.java create mode 100644 javaSE-day09/src/com/inmind/io_exception05/Demo17.java create mode 100644 javaSE-day09/src/com/inmind/io_exception05/Student.java diff --git a/javaSE-day09/src/com/inmind/io_exception05/Demo14.java b/javaSE-day09/src/com/inmind/io_exception05/Demo14.java new file mode 100644 index 0000000..ff24a02 --- /dev/null +++ b/javaSE-day09/src/com/inmind/io_exception05/Demo14.java @@ -0,0 +1,47 @@ +package com.inmind.io_exception05; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +//jdk7之前的标准代码 +public class Demo14 { + public static void main(String[] args) { + FileInputStream fis = null; + FileOutputStream fos = null; + try { + //创建流对象(输入,输出) + fis = new FileInputStream("D:\\io_test\\upload\\1.jpg"); + fos = new FileOutputStream("D:\\io_test\\upload\\3.jpg"); + + //不停地读取一个字节数组,写出一个字节数组,直到读完 + int len;//保存读取到的字节的个数 + byte[] bytes = new byte[1024]; + while ((len = fis.read(bytes)) != -1) { + fos.write(bytes,0,len);//读多少个字节,一次性写出多少个字节 + } + + } catch (IOException e) { + throw new RuntimeException(e); + }finally { + //资源释放 + if (fis != null) { + try { + fis.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + fis = null;//当前流已经关闭,如果不设置为null,fis可能会引用这堆内存中的一个无用liu对象,造成内存泄漏 + } + + if (fos != null) { + try { + fos.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + fos = null; + } + } + } +} diff --git a/javaSE-day09/src/com/inmind/io_exception05/Demo15.java b/javaSE-day09/src/com/inmind/io_exception05/Demo15.java new file mode 100644 index 0000000..7a2b723 --- /dev/null +++ b/javaSE-day09/src/com/inmind/io_exception05/Demo15.java @@ -0,0 +1,33 @@ +package com.inmind.io_exception05; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; + +/* +JDK7异常的处理方式(了解) + 格式: + try(流的创建方式){ + + }catch{ + + } + + 作用:当try-cath代码执行完毕,程序会自动去调用try(流的创建方式)的close方法 + */ +public class Demo15 { + public static void main(String[] args) { + //创建字节输入流 + try (FileInputStream fis = new FileInputStream("a.txt")) { + //不停地读字节 + int c ;//保存读取的字节数据 + while ((c = fis.read()) != -1) { + System.out.print((char) c); + } + + } catch (IOException e) { + e.printStackTrace(); + } + + } +} diff --git a/javaSE-day09/src/com/inmind/io_exception05/Demo16.java b/javaSE-day09/src/com/inmind/io_exception05/Demo16.java new file mode 100644 index 0000000..756664a --- /dev/null +++ b/javaSE-day09/src/com/inmind/io_exception05/Demo16.java @@ -0,0 +1,18 @@ +package com.inmind.io_exception05; + +import java.io.FileInputStream; +import java.io.IOException; + +public class Demo16 { + public static void main(String[] args) { + //创建字节输入流 + try (Student s = new Student()) { + System.out.println("try中的代码执行了"); + + } catch (Exception e) { + e.printStackTrace(); + } + + System.out.println("程序结束"); + } +} diff --git a/javaSE-day09/src/com/inmind/io_exception05/Demo17.java b/javaSE-day09/src/com/inmind/io_exception05/Demo17.java new file mode 100644 index 0000000..362958f --- /dev/null +++ b/javaSE-day09/src/com/inmind/io_exception05/Demo17.java @@ -0,0 +1,27 @@ +package com.inmind.io_exception05; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; + +/* +JDK9的IO异常处理改进(了解) + + 作用:当try-cath代码执行完毕,程序会自动去调用try(流的创建方式)的close方法 + */ +public class Demo17 { + public static void main(String[] args) throws FileNotFoundException { + FileInputStream fis = new FileInputStream("a.txt"); + //创建字节输入流 + try (fis) { + //不停地读字节 + int c ;//保存读取的字节数据 + while ((c = fis.read()) != -1) { + System.out.print((char) c); + } + + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/javaSE-day09/src/com/inmind/io_exception05/Student.java b/javaSE-day09/src/com/inmind/io_exception05/Student.java new file mode 100644 index 0000000..30aa28d --- /dev/null +++ b/javaSE-day09/src/com/inmind/io_exception05/Student.java @@ -0,0 +1,8 @@ +package com.inmind.io_exception05; + +public class Student implements AutoCloseable{ + @Override + public void close() throws Exception { + System.out.println("Student类的close方法执行了"); + } +}