《Java面向对象》课件-7.4 缓冲流_第1页
《Java面向对象》课件-7.4 缓冲流_第2页
《Java面向对象》课件-7.4 缓冲流_第3页
《Java面向对象》课件-7.4 缓冲流_第4页
《Java面向对象》课件-7.4 缓冲流_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

模块七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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论