通过字节缓冲流提高读写效率
通过字节缓冲流提高读写效率
字节缓冲流,通过内部缓存数组来提高操作效率
FIleInputStream和FileOutputStream都是节点流,它们相当于一个管道,进行一个数据的流通。
而BuffrerdInputStream和BufferedOutpurStream都是处理流,它们相当于管道的保护层/海绵,是节点流缓冲区。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class FileStreamBuffed3Demo {
public static void main(String[] args) {
FileInputStream fis = null;
FileOutputStream fos = null;
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
fis = new FileInputStream("D:\\IOTest\\侠客.jpg");
bis = new BufferedInputStream(fis);
fos = new FileOutputStream("D:\\IOTest\\侠客3.jpg");
bos = new BufferedOutputStream(fos);
// 缓冲区中,byte数组长度默认是8192
int temp = 0;
while ((temp = bis.read())!=-1){
bos.write(temp);
}
bos.flush();
}catch (Exception e){
e.fillInStackTrace();
}finally {
try {
// 关闭流时注意,后进来的先关闭
if (bis != null){
bis.close();
}
if (fis != null){
fis.close();
}
if (bos != null){
bos.close();
}
if (fos != null){
fos.close();
}
}catch(Exception e) {
e.fillInStackTrace();
}
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义