版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块七I/O流目录/Contents01File类0203字节流字符流目录/Contents0405缓冲流数据流0607对象流CommonsIO缓冲流任务四学习目标熟悉缓冲流概述,能够简述缓冲流的好处,以及缓冲流读写数据的原理
先定一个小目标!熟悉字节缓冲流,能够使用BufferedInputStream和BufferedOutputStream读写数据熟悉字符缓冲流,能够使用BufferedReader和BufferedWriter读写数据缓冲流概述在JavaIO中,每一次读写操作都会涉及到系统资源的调度,包括磁盘的访问和内存的申请等,这些调度都会占用一定时间,当读写量较大时可能会影响程序性能。为此,JavaIO提供了一种缓冲流,它通过在内存中设置一个默认大小的数组作为缓冲区,来提高读写数据的效率。
缓冲流概述缓冲流提高IO效率的关键在于利用了内存和硬盘读写速度的差异。它通过一次性从硬盘读取较大的数据块到内存中的缓冲区,使得程序可以从缓冲区中读取数据,减少了对硬盘的频繁访问,从而提升了IO操作的效率。缓冲流读写数据的原理如下图所示。缓冲流概述需要说明的是,缓冲流是对原始流(字节流和字符流)的增强,它属于处理流,需要套接在原始流之上。也就是说,缓冲流需要依赖于原始流进行使用。JavaIO中提供了字节缓冲流和字符缓冲流两种缓冲流,使用缓冲流需要及时调用close()方法或flush()方法刷新缓冲区,确保所有数据都被写入或读取。字节缓冲流字节缓冲流包括字节缓冲输入流BufferedInputStream和字节缓冲输出流BufferedOutputStream。下面讲解这两个流。字节缓冲流BufferedInputStream是InputStream的子类,当从BufferedInputStream中读取字节时,BufferedInputStream会从底层输入流中读取一块数据到内部缓冲区,然后根据需要从内部缓冲区中读取数据。BufferedOutputStream是OutputStream的子类,当向BufferedOutputStream中写入字节时,它会先将数据存储在内部缓冲区中,只有当缓冲区满了或调用了flush()、close()方法时,才会将缓冲区中的数据真正写入到底层输出流。字节缓冲流由于缓冲流需要依赖于原始流进行使用,所以BufferedInputStream类和BufferedOutputStream类的构造方法分别接收InputStream和OutputStream类型的参数作为被包装对象,从而在读写字节数据时提供缓冲功能。字节缓冲流案例演示下面通过一个文件复制的案例来学习BufferedInputStream和BufferedOutputStream这两个流的用法。在src目录下的file目录中新建一个文本文件test06.txt,作为源文件,并向该文件中添加内容“字节缓冲流”。Example15.java源代码
字节缓冲流案例演示案例的运行结果如下图所示。
字符缓冲流字符缓冲流包括字符缓冲输入流BufferedReader和字符缓冲输出流BufferedWriter。下面讲解这两个流。字符缓冲流BufferedReader是Reader的子类,当从BufferedReader中读取字符时,BufferedReader会从底层输入流中读取一块数据,然后根据需要从内部缓冲区中提取字符。BufferedReader提供了一个增强方法readLine(),可以更高效的读取数据。BufferedWriter是Writer的子类,当向BufferedWriter中写入字符时,它会先将数据存储在内部缓冲区中,只有当缓冲区满了或调用了flush()方法时,才会将缓冲区中的数据真正写入到底层输出流。字符缓冲流案例演示BufferedReader和BufferedWriter的构造方法分别接收Reader和Writer类型的参数作为被包装对象。下面通过一个案例演示使用BufferedReader和BufferedWriter实现文件的复制。在src目录下的file目录中新建一个文本文件test07.txt,作为源文件,并向该文件中添加内容“字符缓冲流”。Example16.java源代码字符缓冲流案例演示案例的运行结果如下图所示。【案例7-4】异常签到统计案例描述某公司要求所有员工在每天到岗时需要签到,每天正常签到时间在上午的9点以前,超过9点的签到都视为迟到。为了方便统计员工的签到情况,每天签到的数据会保存在一个文件中,本案例要求编写一个异常签到统计的程序,读取员工的签到数据,并将迟到的签到信息作为异常签到信息存储到另一个文件中。本案例原始签到信息的存储位置为“src\file\sgindata.txt”,异常签到信息的存储位置为“src\file\latedata.txt”。【案例7-4】异常签到统计案例效果任务小结本章主要对JavaIO的相关知识进行了讲解。首先讲解了File类和I/O流的知识;然后讲解了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026春季中电信量子集团博士招聘考试参考试题及答案解析
- 2026年甘肃临夏积石山县中西医结合医院招聘紧缺专业技术人员50人考试备考试题及答案解析
- 2026年泗阳县部分事业单位公开招聘工作人员75人考试参考题库及答案解析
- 2026年中国电信博物馆校园招聘笔试参考题库及答案解析
- 2026年中国保利集团有限公司校园招聘笔试参考题库及答案解析
- 8.4机械能守恒定律 教学设计 -高中物理人教版(2019)必修第二册
- 养鹅场养殖流程标准化方案
- 纪律教育工作制度
- 线上问诊工作制度
- 2026年上半年海南文昌市校园招聘事业单位人员38人备考题库(1号)(模拟题)附答案详解
- 2026年中国(滨州)航天文化体验中心公开招聘工作人员(13人)笔试备考试题及答案解析
- 2026年无锡城市职业技术学院单招职业技能考试题库带答案详解
- 律所内部财务报销制度
- 2025-2026学年人教版三年级数学第二学期教学计划及进度表
- 安徽商贸单招2026校考真题
- 新医学大学英语视听说教程2(智慧版)scripts keys
- 第三章 开展社会工作服务应重点掌握的相关政治理论 社会工作综合能力(初级)
- 印刷操作员操作知识模拟考核试卷含答案
- 2025-2026学年六年级美术下册教学设计
- 2025年山东铁投集团社会公开招聘59人笔试参考题库附带答案详解
- 限额以下小型工程常见安全隐患指导手册(2026版)
评论
0/150
提交评论