各种字节结点流类,它们都只具有读写字节内容的方法,以FileInputStream 与 FileOutputStream 为例,它们只能在文件中读取或者向文件中写入字节,在实际应用中我们往往需要在文件中读取或者写入各种类型的数据,就必须先将其它类型的数据转换成字节数组后写入文件,或者从文件中读取到的字节数组转换成其它数据类型,很麻烦!通过FileOutputStream 将一个浮点小数写入到文件中和将一个整数写入到文件时很困难的。
这时就需要包装类DataOutputStream。它提供了往各种输出流对象中写入各种类型的数据的方法。传递一个FileOutputStream输出对象给DataOutputStream 实例对象和调用DataOutputStream实例对象的用于写入浮点小数的方法。
DataOutputStream并没有对应到任何具体的流设备,一定要给它传递一个对应具体流设备的输出流对象,完成类似DataOutputStream 功能的类就是一个包装类,也叫作过滤流类或处理流类。它对OutputStream 流类进行了包装,使得编程人员使用起来更方便。
BufferedInputStream 与 BufferedOutputStream 类
对IO 进行缓冲是一种常见的性能优化方式
缓冲流为IO流增加了内存缓冲区,增加缓冲区的基本目的:
允许java 程序一次不只 *** 作一个字节,这样提高了程序的性能
由于有了缓冲区,使得在流上执行skip、mark 和 reset 方法都成为可能
BufferedInputStream 和 BufferedOutputStream 是java提供的两个缓冲区包装类,不管底层系统是否使用了缓冲区,这两个类在自己的实例对象中创建缓冲区。这种缓冲区与底层系统提供的缓冲区是有区别的。底层系统提供的缓冲区直接与目标设备交换数据。包装类创建的缓冲区需要调用包装类所包装的那个输出流对象将这个缓冲区的数据写入到底层设备或底层缓冲区中。底层缓冲区就是一次向底层设备写入或者读取大量数据。而包装类缓冲区实现一次读取一行的作用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)