0515-BufferedInputStream缓存输入输出流
package A10_IOStream; import java.io.*; /* 作为IO流的入门,今天我们见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。 这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上了铠甲的武士一样,相当于是对基本对象的一种增强。 BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。 BufferedInputStream(InputStream in)创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。 BufferedInputStream(InputStream in, int size)创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。 int read()参见 InputStream 的 read 方法的常规协定。 read(byte[] b, int off, int len)从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中。 void close()关闭此输入流并释放与该流关联的所有系统资源。 BufferedOutputStream BufferedOutputStream(OutputStream out) 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。 BufferedOutputStream(OutputStream out, int size)创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。 void flush()刷新此缓冲的输出流。 void write(byte[] b, int off, int len)将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此缓冲的输出流。 void write(int b)将指定的字节写入此缓冲的输出流。 */ //本示例通过缓冲字节流实现文件复制 public class D07BufferedInputStream { public static void main(String[] args) { copyFileWithBuffered("D:\\[秘密]引力法则.mkv", "D:\\[秘密]引力法则_副本.wmv"); } public static void copyFileWithBuffered(String src, String tar) { File file = new File(src); if (!file.exists()) { System.out.println("源文件不存在!"); return; } long currTime = System.currentTimeMillis(); try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(src)); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(tar));) { byte[] buff = new byte[1024 * 1024 * 64]; //1024*1024*64 代表创建缓冲区大小为64Mb int len = 0; while ((len = bis.read(buff)) != -1) { bos.write(buff,0,len); } } catch (IOException e) { e.printStackTrace(); } long finishTime = System.currentTimeMillis(); System.out.println("文件复制耗时:" + Math.round(finishTime - currTime)*0.001+"(毫秒)"); } }
凡哥,别他妈吹牛逼了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)