Java 输入与输出(I\O)之字节缓冲流【BufferedInputStream】【BufferedOutputStream】详解

缓冲流是Java I/O中的一个重要概念,它可以提高文件读写的性能。

由于磁盘的IO处理速度远低于内存的读写速度。

为了提高文件读写性能,我们可以使用缓冲流。缓冲流使用内存缓冲区,可以一次性读取或写入大量数据,从而减少与磁盘的交互次数,提高整体性能。

缓冲流有两种类型:缓冲字节流和缓冲字符流。

缓冲字节流包括BufferedInputStream和BufferedOutputStream,而缓冲字符流包括BufferedReader和BufferedWriter。

缓冲流是装饰流(处理流),不能直接访问数据源,必须使用节点流作为参数,通过节点流的桥梁实现访问数据源的目的。

字节缓冲流

字节缓冲流包括BufferedInputStream和BufferedOutputStream,它们分别继承自InputStream和OutputStream。它们是装饰流,可以用来装饰节点流和处理流,以增加缓冲功能,提升处理效率。

字节缓冲流的常用方法:

下面是一个字节缓冲流的演示例程:

cpp 复制代码
package IOStream;
import java.io.*;
public class BufferedStreamDemo {
	public static void copyFileWithBuffered(String srcPath,String destPath) {
        File src = new File(srcPath);
        File dest = new File(destPath);
        byte[] buffer = new byte[1024];
        int len;
        try(BufferedInputStream bis = new BufferedInputStream(new FileInputStream(src));
        	BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(dest))){
            while((len = bis.read(buffer)) != -1){
                bos.write(buffer,0,len);
            }
		} catch (IOException e) {
			e.printStackTrace();
		}    
	}
	
	public static void main(String[] args) {
        String sPath = "D:/src/mp4/九寨沟风景.mp4";
        String dPath = "D:/src/mp4/九寨沟风景B.mp4";
        copyFileWithBuffered(sPath, dPath);
        System.out.println("文件复制成功!");
	}
}

测试结果:

参考文献与博客:
Java中的缓冲流详细解析
Java学习之缓冲流的原理详解
java 缓冲流的概念使用方法以及实例详解

相关推荐
学逆向的几秒前
汇编——JCC指令
开发语言·汇编·网络安全
mayaairi1 小时前
JS循环语句深度解析:嵌套for、while与do...while
开发语言·前端·javascript
前端工作日常1 小时前
我学习到的Java中domain和dto区别
java·后端
kite01211 小时前
Go语言Map深度解析与最佳实践
开发语言·后端·golang
码农学院2 小时前
基于Spring Boot的跨境电商多语言订单管理系统架构设计
java·大数据·spring boot
技术小结-李爽3 小时前
【工具】pom文件的<packaging>
java·maven
l156469483 小时前
突围!图文混合知识库难以解析,Kimi-K3 原生视觉架构深耕知识工作,DMXAPI 统一接口,缩短项目开发周期
java·大数据·开发语言
charlie1145141913 小时前
现代C++工程实践 WeakPtr 实战(三):WeakPtrFactory 与「最后成员」惯用法
开发语言·c++·开源项目·现代c++
布吉岛的石头4 小时前
Java 程序员第 45 阶段11:网关统一路由大模型接口,配合 Nacos 配置治理,灰度路由:基于Nacos元数据实现大模型服务灰度发布与权重路由
java·服务发现
我命由我123454 小时前
Android 开发问题:Cannot resolve method ‘repeat‘ in ‘String‘
android·java·java-ee·android studio·android jetpack·android-studio·android runtime