干货!IO流体系输入流InputStream的子类ByteArrayInputStream

1、二进制文件和文本文件?

在介绍文件读写技术之前,有必要先了解一下二进制文件和文本文件。

其实二进制文件和文本文件在物理存储上并没有什么区别,存储在硬盘上的文件都是以二进制方式存储的。二者的区别在于解释数据的逻辑不同。

文本文件:这类文件以文本的ASCII码形式存储在计算机中。它是以"行"为基本结构的一种信息组织和存储方式。

二进制文件:这类文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们,只有通过相应的软件才能将其显示出来。二进制文件一般是可执行程序、图形、图像、声音等等。

(1)程序读取文本文件时,可以以字符方式读取,也可以以字节方式读取,将读取的数据解释为ASCII或unicode编码,也就是解释为字符,读取的字符可以直接输出到屏幕上显示出来;字节输入流InputStream类、字节输出流OutputStream类、字符输入流Reader、字符输出流Writer。

(2)当程序读取二进制文件时,是以字节方式读取的,对读取数据的解释由读取程序决定。如读取图片文件时,读取图片的程序需要了解该文件的结构,并解释读取的数据,如果不了解该图片文件的结构,读取图片文件就会失败,也就无法把图片显示出来了。 字节输入流InputStream类、

字节输出流OutputStream类。

2、ByteArrayInputStream类在Java中IO流的体系结构图的位置




3、为什么要引入ByteArrayInputStream类?

ByteArrayOutputStream类是在创建它的实例时,程序内部创建一个byte型别数组的缓冲区,然后利用ByteArrayOutputStream和

ByteArrayInputStream的实例向数组中写入或读出byte型数据。

在网络传输中我们往往要传输很多变量,我们可以利用ByteArrayOutputStream把所有的变量收集到一起,然后一次性把数据发送出去。

ByteArrayInputStream是可以将字节数组转化为输入流。

4、什么是ByteArrayInputStream类?

是Java SE中IO流体系中的字节输入流InputStream的子类,是字节数组输入流ByteArrayInputStream。


java.io 类 ByteArrayInputStream

java.lang.Object java.io.InputStream java.io.ByteArrayInputStream

所有已实现的接口:

Closeable

5、ByteArrayInputStream类的特点和作用

ByteArrayInputStream本身操作的是一个数组,并没有打开文件描述之类的,所有不需要关闭流。

ByteArrayInputStream是字节数组输入流,在内存中创建了一个字节数组,将输入流中读取的数据保存到字节数组的缓存区中。也就是说字节数组输入流将读取数据放到字节数组缓冲区中。

6、ByteArrayInputStream的所有已知实现的接口

所有已实现的接口:

Closeable

7、企业开发里常用ByteArrayInputStream类的构造方法




8、企业开发里常用ByteArrayInputStream类的成员方法







接下来分享文档资料(进阶架构视频+面试资料)针对最近找工作碰壁,面试被虐,想要提升自己的工程师分享(只分享50份)

资料获取方式:转发+关注后台私信回复【资料】获取

【最后】:小编非常感谢大家点赞、关注和转发,欢迎大家留言讨论!!

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();