JavaApi笔记(五)——IO流篇
一、字节流关系图
二、输入字节流
- InputStream类(抽象类)
这个抽象类是表示输入字节流的所有类的超类。
方法表:
- AudioInputStream类(InputStream类直接子类)
音频输入流是具有指定音频格式和长度的输入流。 长度以采样帧而不是字节表示。 提供了几种从流中读取一定数量字节的方法。音频输入流可以支持标记。 设置标记时,会记住当前的位置,以便以后可以返回。
数据域表:
构造函数:
方法表:
-
ByteArrayInputStream类(InputStream类直接子类)
A ByteArrayInputStream包含一个内部缓冲区,其中包含可以从流中读取的字节。 内部计数器跟踪read方法要提供的下一个字节。 -
FileInputStream类(InputStream类直接子类)
FileInputStream从文件系统中的文件获取输入字节。 什么文件可用取决于主机环境。
FileInputStream用于读取诸如图像数据的原始字节流。 要阅读字符串,请考虑使用FileReader 。 -
FilterInputStream类(InputStream类直接子类)
FilterInputStream包含一些其他输入流,它用作其基本的数据源,可能会沿途转换数据或提供附加功能。
子类表(省略extends FilterInputStream)
序号 | 子类定义 | 作用 |
---|---|---|
1 | public class BufferedInputStream | 当创建BufferedInputStream时,将创建一个内部缓冲区数组。 当从流中读取或跳过字节时,内部缓冲区将根据需要从所包含的输入流中重新填充,一次有多个字节。 |
2 | public class CheckedInputStream | 带校验和的字节流 |
3 | public class CipherInputStream | 由InputStream和Cipher组成,read()方法返回从InputStream读入经过Cipher额外处理的数据。 Cipher类提供加密和解密的加密密码的功能。 它构成了Java加密扩展(JCE)框架的核心。 |
4 | public class DataInputStream | 数据输入流允许应用程序以独立于机器的方式从底层输入流读取原始Java数据类型。 应用程序使用数据输出流来写入稍后可以被数据输入流读取的数据。 |
5 | public class DeflaterInputStream | 实现用于压缩“deflater”压缩格式的数据的输入流过滤器。 |
6 | public class DigestInputStream | 通过流经输入流中的位来更新相关联消息的摘要的一种透明流 |
7 | public class InflaterInputStream | 该类实现了一个流过滤器,用于以“deflate”压缩格式解压缩数据。 它也被用作其他j解压滤波器的基础,如GZIPInputStream。 |
8 | 已弃用。一个输入流过滤器,它提供跟踪当前行号的附加功能。 | |
9 | public class ProgressMonitorInputStream | 监视从一些InputStream读取进度 |
10 | public class PushbackInputStream | 可以“push back”或“unread”一个字节或字节数组的字节输入流,主要通过其unread方法 |
-
ObjectInputStream类(InputStream类直接子类)
ObjectInputStream反序列化先前使用ObjectOutputStream编写的原始数据和对象。 -
PipedInputStream(InputStream类直接子类)
管道输入流应连接到管道输出流; 管道输入流然后提供写入管道输出流的任何数据字节。 -
SequenceInputStream类(InputStream类直接子类)
它从一个有序的输入流集合开始,从第一个读取到文件的结尾,然后从第二个文件读取,依此类推,直到最后一个输入流达到文件的结尾。
-
StringBufferInputStream类(已弃用,InputStream类直接子类)
该类允许应用程序创建一个输入流,其中读取的字节由字符串的内容提供。
三、输出字节流
-
OutputStream类(抽象类)
字节输出流的所有类的超类。 输出流接收输出字节并将其发送到某个接收器 -
ByteArrayOutputStream类(OutputStream类直接子类)
该类实现了将数据写入字节数组的输出流。 当数据写入缓冲区时,缓冲区会自动增长。 -
FilterOutputStream类(OutputStream类直接子类)
文件输出流是用于将数据写入到输出流File或一个FileDescriptor 。 文件是否可用或可能被创建取决于底层平台。 特别是某些平台允许一次只能打开一个文件来写入一个FileOutputStream (或其他文件写入对象)。 -
FilterOutputStream类(OutputStream类直接子类)
子类表
序号 | 方法声明 | 功能描述 |
---|---|---|
1 | BufferedOutputStream | 用法类似BufferedInputStream |
2 | CheckedOutputStream | 用法类似CheckedInputStream |
3 | CipherOutputStream | 用法类似CipherInputStream |
4 | DataOutputStream | 用法类似DataInputStream |
5 | DeflaterOutputStream | 用法类似DeflaterInputStream |
6 | DigestOutputStream | 用法类似DigestInputStream |
7 | InflaterOutputStream | 用法类似InflaterInputStream |
8 | PrintStream | PrintStream为另一个输出流添加了功能,即能够方便地打印各种数据值的表示。 |
-
ObjectOutputStream类(OutputStream类直接子类)
ObjectOutputStream将可序列化Java对象的原始数据类型和图形写入OutputStream。 可以使用ObjectInputStream读取(重构)对象。 可以通过使用流的文件来实现对象的持久存储。 如果流是网络套接字流,则可以在另一个主机上或另一个进程中重构对象。 -
PipedOutputStream类(OutputStream类直接子类)
管道输出流可以连接到管道输入流以创建通信管道。 管道输出流是管道的发送端。