数据流和内存流


在前面的学习中,我们知道数据流处理的数据都是指字节或字节数组,但实际上很多时候不是这样的,它需要数据流能直接读、写各种各样的java语言的基本数据类型。

DataInputStreamDataOutputStream提供了可以直接存取java基本类型(intdouble等)的方法。对于存取基本类型,在效率上比普通字节流要快很多。它们分别继承inputStreamoutputStream,并且需要套接在InputStreamOutputStream上。

例如在一个文件中存放300个整数值,从中读取时,希望按int为基本单位进行读取,这样可以大大节省时间。

这时就需要使用DataInputStream和DataOutputStream,DataInputStream和DataOutputStream不但支持父类InputStream和OutputStream中的方法,以原有方式读写数据,同时还允许通过数据流来读写java语言的基本数据类型,包括int、float、double和double等。

1,内存操作流的操作对象,一定是以内存为主准,不要以程序为准。

2,实际上此时可以通过向上转型的关系,为OutputStreamInputStream.

3,内存输出流在日后的开发中也是经常使用到,所以一定要重点掌握

输入和输出都是从文件中来的,当然,也可将输出的位置设置在内存上,这就需要ByteArrayInputStream和ByteArrayOutputStream
ByteArrayInputStream:将内容写入到内存中,
ByteArrayOutputStream:将内存中数据输出
此时的操作应该以内存为操作点。
利用此类 完成一些功能。
常用方法
ByteArrayInputStream :是InputStream子类。
public class ByteArrayInputStream extends InputStream
构造方法:
ByteArrayInputStream(byte[] buf)
创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组。
接收一个byte数组,实际上内存的输入就是在构造方法上将数据传递到内存之中。
ByteArrayOutputStream:是OutputStream子类
输出就是从内存中写出数据。

原文地址:https://www.cnblogs.com/wlm-boke/p/8524723.html