过滤流(包装流)

过滤流(包装流)的概念与作用

各种字节结点流类,它们都只具有读写字节内容的方法,以FileInputStream 与 FileOutputStream 为例,它们只能在文件中读取或者向文件中写入字节,在实际应用中我们往往需要在文件中读取或者写入各种类型的数据,就必须先将其它类型的数据转换成字节数组后写入文件,或者从文件中读取到的字节数组转换成其它数据类型,很麻烦!通过FileOutputStream 将一个浮点小数写入到文件中和将一个整数写入到文件时很困难的。

这时就需要包装类DataOutputStream。它提供了往各种输出流对象中写入各种类型的数据的方法。传递一个FileOutputStream输出对象给DataOutputStream 实例对象和调用DataOutputStream实例对象的用于写入浮点小数的方法。

DataOutputStream并没有对应到任何具体的流设备,一定要给它传递一个对应具体流设备的输出流对象,完成类似DataOutputStream 功能的类就是一个包装类,也叫作过滤流类或处理流类。它对OutputStream 流类进行了包装,使得编程人员使用起来更方便。

BufferedInputStream 与 BufferedOutputStream 类
对IO 进行缓冲是一种常见的性能优化方式
缓冲流为IO流增加了内存缓冲区,增加缓冲区的基本目的:
允许java 程序一次不只操作一个字节,这样提高了程序的性能
由于有了缓冲区,使得在流上执行skip、mark 和 reset 方法都成为可能

BufferedInputStream 和 BufferedOutputStream 是java提供的两个缓冲区包装类,不管底层系统是否使用了缓冲区,这两个类在自己的实例对象中创建缓冲区。这种缓冲区与底层系统提供的缓冲区是有区别的。底层系统提供的缓冲区直接与目标设备交换数据。包装类创建的缓冲区需要调用包装类所包装的那个输出流对象将这个缓冲区的数据写入到底层设备或底层缓冲区中。底层缓冲区就是一次向底层设备写入或者读取大量数据。而包装类缓冲区实现一次读取一行的作用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值