龙空技术网

Java中的IO流详解1 我就不信你全用过 还特别熟

优悠严选 2218

前言:

此刻我们对“iojava”大致比较看重,兄弟们都需要剖析一些“iojava”的相关内容。那么小编在网摘上收集了一些对于“iojava””的相关文章,希望各位老铁们能喜欢,你们一起来了解一下吧!

喜欢就关注小编,小编天天写,你也可以进步一点点Java中的IO流详解

FileInputStream和其他字节输入流之间的关系

字节输入流FileInputStream是底层核心输入流,继承了InputStream抽象类,是InputStream类的核心实现。是其他字节输入流依赖的底层输入流。

FileInputStream类的构造函数:

构造函数的参数可以是File类型也可以是String类型,不管是哪种类型,代表是某个具体的文件。说明FileInputStream类直接操作的是磁盘上的文件。在操作系统中,文件有图片、视频、纯文本、二进制文件等。

BufferedInputStream类的构造函数:

缓冲字节输入流BufferedInputStream,带有缓冲字节数组,默认是8k个byte,当然可以指定缓冲区的大小。读取磁盘中的字节先缓冲到缓冲区中,当缓冲区写满后一次读取。可以注意到,缓冲字节输入流的构造函数中参数的类型是InputStream类型,这个参数只能是FileInputStream文件字节输入流的引用。通常情况下,这种类叫做包装类,不能直接操作具体的文件,只能通过FileInputStream引用对文件进行间接的读取。

ObjectInputStream类的构造函数

Java对象字节输入流ObjectInputStream 主要的作用是对之前使用Java对象字节输出流 ObjectOutputStream序列化写入到磁盘文件中的基本数据和对象进行反序列化读取。

通常情况下,对象输出流ObjectOutputStream和对象输入流ObjectInputStream分别与文件字节输出流FileOutputStream和文件字节输入流FileInputStream一起使用,可以将程序运行过程中的对象进行持久化存储到磁盘文件中。ObjectInputStream 用于恢复那些以前序列化的对象到内存。

ObjectInputStream将从字节输入流的对象反序列化后与Java虚拟机中对象对应的类型匹配。只有实现了java.io.Serializable接口的对象才能从流读取。

对象字节输入流构造函数的参数类型也是InputStream,不能直接操作底层的文件,也是一个包装类,依赖FileInputStream类。另一个无参数的构造函数主要是为了特殊需要创建的子类准备的,通常不会使用。

DataInputStream类的构造函数

DataInputStream(InputStream in)

数据字节输入流可以从底层输入流中读取基本Java数据类型,应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。

从数据字节输入流的构造函数可以看出,DataInputStream流不能直接操作底层的文件,只能通过FileInputStream对底层的文件进行读取,也是一个包装类。

通过对上面几个常用到的字节输入流类进行分析,FileInputStream类是核心的底层的可以直接操作文件的字节输入流,其他的字节输入流都依赖FileInputStream字节输入流。只有了解了FileInputStream类的读取方式,对其他的字节输入流就更容易了解了。

喜欢就关注小编,小编天天写,你也可以进步一点点

标签: #iojava