From e304b8c26818f574073cf3fb3f45ae8e9bb13d8a Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Tue, 11 Aug 2026 15:16:10 +0800 Subject: [PATCH] =?UTF-8?q?s-day10-=E7=BC=93=E5=86=B2=E6=B5=81=E7=9A=84?= =?UTF-8?q?=E6=A6=82=E8=BF=B0&=E4=BD=BF=E7=94=A8=E7=BC=93=E5=86=B2?= =?UTF-8?q?=E6=B5=81=E5=A4=8D=E5=88=B6=E6=96=87=E4=BB=B6=EF=BC=88=E4=B8=80?= =?UTF-8?q?=E6=AC=A1=E8=AF=BB=E5=86=99=E4=B8=80=E4=B8=AA=E5=AD=97=E8=8A=82?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- s-day10/src/com/inmind/buffered01/Demo01.java | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 s-day10/src/com/inmind/buffered01/Demo01.java diff --git a/s-day10/src/com/inmind/buffered01/Demo01.java b/s-day10/src/com/inmind/buffered01/Demo01.java new file mode 100644 index 0000000..92f23bf --- /dev/null +++ b/s-day10/src/com/inmind/buffered01/Demo01.java @@ -0,0 +1,79 @@ +package com.inmind.buffered01; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.FileInputStream; +import java.io.FileOutputStream; + +/* +1.缓冲流的介绍 +缓冲流:基于字节字符流,本身本身没有读写功能,底层封装了一8192长度的缓冲区(数组),提高读写效率,也叫高效流 + +字节缓冲流: BufferedInputStream BufferedOutputStream +字符缓冲流: BufferedReader BufferedWriter +------------------------------------------------------------------------------------ +字节缓冲流的基本使用以及使用缓冲流复制文件(一次读写一个字节) + 字节缓冲输入流:BufferedInputStream + 构造方法: + BufferedInputStream(InputStream in) 创建一个 BufferedInputStream并保存其参数,输入流 in供以后使用。 + 常用方法: + int read() :读取一个字节数据 + int read(byte[] bytes) : 读取一个字节数组 + + 字节缓冲输出流:BufferedOutputStream + 构造方法: + BufferedOutputStream(OutputStream out) 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。 + 常用方法: + void write(int b) 将指定的字节写入缓冲的输出流。 + public void write(byte[] b) + void write(byte[] b, int off, int len) 从偏移量 off开始的指定字节数组写入 len字节到缓冲输出流。 + + */ +public class Demo01 { + public static void main(String[] args) throws Exception { + //使用缓冲流复制文件 + //创建字节缓冲输入流 + FileInputStream fis = new FileInputStream("1.jpg"); + BufferedInputStream bis = new BufferedInputStream(fis); + //创建字节缓冲输出流 + BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("2.jpg")); + long start = System.currentTimeMillis(); + //缓冲流一次读写一个字节,使用43ms + int c ;//保存读取的一个字节数据 + //缓冲流不停读写 + while ((c = bis.read()) != -1) { + bos.write(c); + } + long end = System.currentTimeMillis(); + System.out.println("复制所需的毫秒值:"+(end-start)); + + bis.close(); + bos.close(); + + } + + + + + + + //使用字节输入输出流进行一次读写一个字节,复制文件 6477ms + public static void method(String[] args)throws Exception { + //1.创建字节输入流 + FileInputStream fis = new FileInputStream("D:\\io_test\\upload\\1.jpg"); + //2.创建字节输出流 + FileOutputStream fos = new FileOutputStream("1.jpg"); + //3.不停地读写到另一个文件中(边读边写) + long start = System.currentTimeMillis(); + //方式一:一次读写一个字节 + int c;//用来记录读取的字节数据 + while ((c = fis.read()) != -1) { + fos.write(c); + } + long end = System.currentTimeMillis(); + System.out.println("复制所需的毫秒值:"+(end-start)); + //4.资源释放 + fis.close(); + fos.close(); + } +}