当前位置: 首页 > news >正文

Java学习-IO流-字节缓冲流

Java学习-IO流-字节缓冲流

						 IO流体系↙                  ↘字节流 						   字符流↙         ↘                   ↙      ↘InputStream      OutputStream 	 Reader 	 Writer↓                ↓             ↓           ↓
FileInputStream  FileOutputStream  FileReader  FileWriter

FileInputStream、FileOutputStream、FileReader、FileWriter 称之为基本流
高级流:缓冲流、转换流、序列化流、打印流、压缩流、Commons-io
缓冲流:BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter

缓冲流

                       缓冲流↙                  ↘字节缓冲流                 字符缓冲流↙        ↘                ↙        ↘Buffered        Buffered       Buffered      Buffered
InputStream    OutputStream      Reader        Writer
字节缓冲输入流  字节缓冲输出流  字符缓冲输入流  字符缓冲输出流

字节缓冲流

底层自带长度为8192的缓冲区提高性能

public BufferedInputStream(InputStream is):把基本流包装成高级流,提高读取数据性能
public BufferedOutputStream(OutputStream os):把基本流包装成高级流,提高写出数据性能

练习:利用字节缓冲流拷贝文件

BufferedInputStream bis = new BufferedInputStream(new FileInputStream("..\\xx.txt"));
BufferedOutputStream bis = new BufferedOutputStream(new FileOutputStream("..\\copy.txt"));
int b;
while((b=bis.read())!=-1){bos.write(b);}
bos.close();
bis.close();

BufferedInputStream 的缓冲区

public BufferedInputStream(InputStream in){this(in,DEFAULT_BUFFER_SIZE);//DEFAULT_BUFFER_SIZE=8192
}
public BufferedInputStream(InputStream in,int size){super(in);if(size<=0){throw new IllegalArgumentException("BUffer size <= 0");}buf = new byte[size];//缓冲区
}

为什么只需关闭高级流,不需要关闭基本流
高级流底层关闭了基本流

public void close() throws IOException{...finally{if(flushException == null){out.close();}//关闭基本流else{try{out.close();}//关闭基本流...}}
}

字节缓冲流拷贝文件(一次读写多个字节)

BufferedInputStream bis = new BufferedInputStream(new FileInputStream("..\\xx.txt"));
BufferedOutputStream bis = new BufferedOutputStream(new FileOutputStream("..\\copy.txt"));
byte[] bytes = new byte[1024];
int len;
while((len=bis.read(bytes))!=-1){bos.write(bytes,0,len);}
bos.close();
bis.close();

字节缓冲流的读写原理

数据源→基本流→缓冲输入流→内存→缓冲输出流→基本流→文件

相关文章:

Java学习-IO流-字节缓冲流

Java学习-IO流-字节缓冲流 IO流体系↙ ↘字节流 字符流↙ ↘ ↙ ↘InputStream OutputStream Reader Writer↓ ↓ ↓ ↓ FileInputStream FileOutputStream FileRe…...

C++这么难,为什么我们还要学习C++?

前言 C 可算是一种声名在外的编程语言了。这个名声有好有坏&#xff0c;从好的方面讲&#xff0c;C 性能非常好&#xff0c;哪个编程语言性能好的话&#xff0c;总忍不住要跟 C 来单挑一下&#xff1b;从坏的方面讲&#xff0c;它是臭名昭著的复杂、难学、难用。当然&#xff…...

C#底层库--业务单据号生成器(定义规则、自动编号、流水号)

系列文章 C#底层库–MySQL数据库访问操作辅助类&#xff08;推荐阅读&#xff09; 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/126886379 C#底层库–JSON帮助类_详细&#xff08;序列化、反序列化、list、datatable&#xff09; 本文链接&…...

vue3项目练习大全(附github源码)

vue慢慢的成为了前端最受欢迎的框架之一&#xff0c;在很多项目之中开发都能用得到&#xff0c;如今也已经发展到3.0了&#xff0c;可能是因为这个框架可以提高工作效率&#xff0c;因此受到大家的追捧&#xff0c;在之前的文章里面也说过&#xff0c;2019年&#xff0c;大前端…...

SWMM从入门到实践教程 01 SWMM软件介绍

文章目录1 软件介绍2 软件面板2.1 主菜单2.1.1文件菜单&#xff08;File&#xff09;2.1.2 编辑菜单&#xff08;Edit&#xff09;2.1.3 视图菜单&#xff08;View&#xff09;2.1.4 工程菜单&#xff08;Project&#xff09;2.1.5 报告菜单&#xff08;Report&#xff09;2.1.…...

CSS中的text-overflow属性详解 (控制文字在一行显示,超出部分加省略号)

text-overflow: ellipsis; 表示当文本内容超出所在容器的宽度时&#xff0c;用省略号来代替超出的部分。white-space:nowrap; 表示文本不换行。overflow: hidden; 表示超出容器的内容将被隐藏。 将这三个加入需要控制的css的属性中&#xff0c;就能控制文字在一行显示&#xff…...

基于pytorch实现模型剪枝

一,剪枝分类二,PyTorch 的剪枝三,总结参考资料一,剪枝分类 所谓模型剪枝,其实是一种从神经网络中移除"不必要"权重或偏差(weigths/bias)的模型压缩技术。关于什么参数才是“不必要的”,这是一个目前依然在研究的领域。 1.1,非结构化剪枝 非结构化剪枝(U…...

写出高质量的前端代码之消除代码中的重复

软件开发中&#xff0c;有个很重要的DRY原则&#xff0c;即Dont Repeat Yourself&#xff0c;也就是不要重复自己。 重复的代码会带来以下问题&#xff1a; 开发效率低&#xff0c;重复造轮子不同人开发的同一类功能&#xff0c;质量层次不齐修改问题时可能会遗漏&#xff0c…...

怎么从零开始学黑客,黑客零基础怎么自学

很多朋友对成为黑客很感兴趣&#xff0c;很大原因是因为看到电影中黑客的情节觉的特别的酷&#xff0c;看到他们动动手指就能进入任何系统&#xff0c;还有很多走上黑客之路的朋友仅仅是因为自己的qq被盗了&#xff0c;或者游戏里的装备被别人偷了&#xff0c;想要自己盗回来&a…...

量化择时——资金流择时策略(第1部分—因子测算)

文章目录资金流模型概述资金流模型的有效性逻辑资金流向指标MFI&#xff08;Money Flow Index&#xff09;MFI指标测算测算规则测算结论资金流模型概述 通常&#xff0c;资金流是一种反映股票供给信息的指标&#xff0c;宏观上来讲&#xff0c;我们知道一个道理&#xff1a;僧…...

Openwrt中动态IPV6 防火墙的正确设置方法

环境&#xff1a;光猫桥接公网IPV6 问题&#xff1a;动态IPV6地址不知道怎么设置防火墙 解决办法&#xff1a;模糊匹配前缀&#xff0c;特定后缀 背景&#xff1a;将家中光猫桥接后&#xff0c;获得了公网的IPV6地址&#xff0c;可以从外部用IPV6访问家中的设备&#xff0c;但I…...

JS的基本数据类型和引用数据类型

ES6 引入了一种新的原始数据类型 Symbol&#xff0c;表示独一无二的值。它是 JavaScript 语言的第七种数据类型&#xff0c;前六种是&#xff1a;Undefined、Null、布尔值&#xff08;Boolean&#xff09;、字符串&#xff08;String&#xff09;、数值&#xff08;Number&…...

mars3d基础项⽬常⻅报错

1.在⼤家使⽤mars3d基础项⽬的时候经常遇到这个报错&#xff0c;截图如下 回答&#xff1a; 1.原因是因为使⽤了cnpm安装依赖&#xff0c;导致了⼀些依赖问题 2.解决⽅式也很简答&#xff0c;重新使⽤ npm 或 yarn 或 pnpm安装依赖即可 2.本地加载地图时&#xff0c;出现报错回…...

【阿旭机器学习实战】【35】员工离职率预测---决策树与随机森林预测

【阿旭机器学习实战】系列文章主要介绍机器学习的各种算法模型及其实战案例&#xff0c;欢迎点赞&#xff0c;关注共同学习交流。 本文的主要任务是通过决策树与随机森林模型预测一个员工离职的可能性并帮助人事部门理解员工为何离职。 目录1.获取数据2.数据预处理3.分析数据3.…...

Python学习-----模块4.0(json字符串与json模块)

目录 1.json简介&#xff1a; 2.json对象 3.json模块 &#xff08;1&#xff09;json.dumps() 函数 &#xff08;2&#xff09;json.dumps() 函数 &#xff08;3&#xff09;json.loads() 函数 (4) json.load() 函数 4.总结&#xff1a; 1.json简介&#xff1a; SON(…...

open3d最大平面检测,平面分割

1.点云读入 读入文件&#xff08;配套点云下载链接&#xff09; # 读取点云 pcd o3d.io.read_point_cloud("point_cloud_00000.ply")配套点云颜色为白色&#xff0c;open3d的点云显示默认背景为白色&#xff0c;所以将点云颜色更改为黑色 pcd.colors o3d.utilit…...

【C++】4.类和对象(下)

1.再谈构造函数 1赋值 class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;}private:int _year;int _month;int _day; };构造函数体中的语句只能将其称作为赋初值&#xff0c;而不能称作初始化。因为初始化只能初始化一次&#xf…...

自动驾驶仿真:ECU TEST 、VTD、VERISTAND连接配置

文章目录一、ECU TEST 连接配置简介二、TBC配置 test bench configuration三、TCF配置 test configuration提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、ECU TEST 连接配置简介 1、ECU TEST&#xff08;简称ET&#xff09;&#xff0c;用于HIL仿…...

postgres数据库连接管理

1.连接命令psql -d postgres -h 10.0.0.51. -p 1921 -U postgres&#xff08;-d指定数据库名字&#xff09;2.pg防火墙介绍&#xff08;pg实例层面的权限控制&#xff09;pg_hba.conf文件配置文件分为5部分&#xff1a;配置示例#TYPE DATABASE USER ADDRESS METHODhost all loc…...

【华为OD机试模拟题】用 C++ 实现 - 环中最长子串(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...

C#中预处理器指令的实现示例

1. 什么是编译器&#xff1f;编译器是一种将高级编程语言代码&#xff08;如 C#、Java、Python&#xff09;翻译成计算机可执行代码&#xff08;如机器码或中间语言&#xff09;的程序。它的核心作用包括&#xff1a;语法检查&#xff1a;验证代码是否符合语言规范。优化&#…...

基于流形学习的无人机起降场风场实时估计方法

1. 项目概述与核心挑战在无人机&#xff08;UAV&#xff09;起降场&#xff0c;特别是城市楼顶的垂直起降场&#xff08;Vertiport&#xff09;&#xff0c;风场环境极其复杂。建筑物干扰会产生分离、再附、涡旋等非定常流动结构&#xff0c;对无人机的姿态稳定、轨迹控制和着陆…...

昇腾CANN opbase 算子注册与分发调度:从 API 到 AI Core 的路径追踪

所有 CANN 算子都依赖 opbase——它不是写具体算子的地方&#xff0c;而是算子的"注册中心 调度器"。用户调用 torch.nn.functional.softmax(x) → PyTorch 转发到 CANN → CANN 查 opbase 的算子注册表 → 找到对应的 Ascend C kernel → 加载到 AI Core → 执行。…...

从零到一:用 LangChain 搭建你的第一个 AI Agent,让 LLM 自己干活!

导读&#xff1a;&#xff0c;2024年最火的不是大模型本身&#xff0c;而是基于大模型的 AI Agent。它能自主思考、调用工具、执行任务——不再是"你说一句我回一句"的聊天机器人&#xff0c;而是真正能帮你干活的数字员工。本文从零带你搭建一个完整的 AI Agent&…...

国产系统(UOS/麒麟/方德)截图工具终极指南:从内置工具到第三方替代方案全解析

国产操作系统截图工具全攻略&#xff1a;从基础操作到高阶玩法在数字化办公时代&#xff0c;截图功能已成为日常工作中不可或缺的生产力工具。对于统信UOS、麒麟KOS、方德NFS等国产操作系统的用户而言&#xff0c;掌握系统内置截图工具的各项功能&#xff0c;并了解当内置工具无…...

为什么你的 Agent 总是“偷懒”?大模型惰性与激励提示词研究

为什么你的 Agent 总是“偷懒”?大模型惰性与激励提示词研究 各位知识工作者、AI 产品经理、大模型开发者、编程爱好者——如果你正在开发或使用基于大语言模型(LLMs)的智能体(Agent),或者只是在日常用 ChatGPT、Claude、文心一言这类工具时,肯定遇到过这类令人抓狂的场…...

NVIDIA Vera Rubin 平台如何解决 Agentic AI 的 Scale-up 难题

NVIDIA Vera Rubin 平台如何解决 Agentic AI 的 Scale-up 难题 [外链图片转存中…(img-5hHDDlgn-1779546321135)] Agentic AI 改变了推理系统的负载形态。传统推理通常可以理解为一次请求、一次生成&#xff1b;Agentic inference 则会展开成非确定性轨迹&#xff1a;Agent 做…...

长尾关键词助力扫描SEO效果的全新方法

长尾重要词在SEO优化中扮演着重要角色&#xff0c;帮助网站吸引特定的目标用户。这些重要词通常较长且具有明确意图&#xff0c;虽然单个搜索量不高&#xff0c;但它们在低竞争环境中发光发热。依靠聚焦这些重要词&#xff0c;企业能够提高搜索排名和流量&#xff0c;进而促进转…...

2026年,探寻靠谱体育器材的终极指南

在追求健康与活力的时代&#xff0c;体育器材成为了我们运动生活中的重要伙伴。但面对市场上琳琅满目的品牌和产品&#xff0c;如何选择靠谱的体育器材成为了许多人的难题。今天&#xff0c;让我们一同探寻 2026 年靠谱体育器材的终极指南。一、品质与口碑沧州九牌体育用品制造…...

机场应急处置保障:黎阳之光无感赋能,精准调度救援,提升处置能力

机场空间结构复杂、人员高度密集、设备设施集中&#xff0c;易受突发天气、设备故障、突发险情等各类突发事件影响&#xff0c;应急处置、人员疏散、救援调度的效率&#xff0c;是保障机场安全运行的核心关键。传统应急模式下&#xff0c;现场人员分布态势模糊、被困位置无法快…...