Java8 I/O源码-整体结构
在详细地对Java I/O系统中的各个类进行讲解前,先复习下Java I/O的整体结构。
如下图所示,基本包含了Java I/O中比较常用的类。
下面简单地介绍下它们。
字节流
InputStream
InputStream是以字节为单位的输入流。
类 | 介绍 | 传送门 |
---|---|---|
ByteArrayInputStream | 包含一个内部缓冲区,该缓冲区包含从流中读取的字节 | 详情 |
PipedInputStream | 和PipedOutputStream一起使用,实现多线程间的管道通信。 | 详情 |
FilterInputStream | FilterInputStream主要用途在于封装其他的输入输出流,为它们提供一些额外的功能。FilterInputStream的子类可进一步重写一些方法,并且还可以提供一些额外的方法和字段。 | 详情 |
BufferedInputStream | 用于为其他输入流提供缓冲功能。 | 详情 |
DataInputStream | 用来装饰其它输入流,以从底层输入流中读取基本Java数据类型。 | 详情 |
FileInputStream | 文件输入流,用于从文件系统中的某个文件中获得输入字节。FileInputStream用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用FileReader。 | 详情 |
ObjectInputStream | 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化 | |
SequenceInputStream | 串联输入流,将多个输入流转化为一个 | |
StringBufferInputStream | 将String转化为输入流 |
OutputStream
OutputStream是以字节为单位的输出流。
类 | 介绍 | 传送门 |
---|---|---|
ByteArrayOutputStream | ByteArrayOutputStream中数据被写入一个byte数组。缓冲区会随着数据的不断写入而自动增长。 | 详情 |
PipedOutputStream | 和PipedInputStream一起使用,实现多线程间的管道通信。 | 详情 |
FilterOutputStream | FilterOutputStream主要用途在于封装其他的输入输出流,为它们提供一些额外的功能。FilterOutputStream的子类可进一步重写一些方法,并且还可以提供一些额外的方法和字段。 | 详情 |
BufferedOutputStream | 用于为其他输出流提供缓冲功能。 | 详情 |
DataOutputStream | 数据输出流允许应用程序以适当方式将基本Java数据类型写入输出流中。 | 详情 |
PrintStream | 为其他输出流提供打印功能。 | |
FileOutputStream | 文件输出流,用于将数据写入File或FileDescriptor的输出流。FileOutputStream用于写入诸如图像数据之类的原始字节的流。要写入字符流,请考虑使用FileWriter。 | 详情 |
ObjectOutputStream | 将Java对象的基本数据类型和图形写入 OutputStream。 |
字符流
Reader
Reader是以字符为单位的输入流。
类 | 介绍 | 传送门 |
---|---|---|
CharArrayReader | 用于读取字符数组,实现一个可用作字符输入流的字符缓冲区。 | 详情 |
PipedReader | 和PipedWriter一起实现线程间的通讯。 | 详情 |
FilterReader | 用于读取已过滤的字符流 | |
BufferedReader | 为另一个输入流添加缓冲功能。 | 详情 |
InputStreamReader | 是字节流通向字符流的桥梁 | 详情 |
FileReader | 用于对文件进行读取操作 | 详情 |
Writer
Writer是以字符为单位的输出流。
类 | 介绍 | 传送门 |
---|---|---|
CharArrayWriter | 实现了一个字符缓冲区。缓冲区会随向流中写入数据而自动增长。 | 详情 |
PipedWriter | 和PipedReader一起是通过管道实现线程间的通讯。 | 详情 |
FilterWriter | 用于写入已过滤的字符流。 | |
BufferedWriter | 为另一个输出流添加缓冲功能。 | 详情 |
OutputStreamWriter | 是字符流通向字节流的桥梁, | 详情 |
FileWriter | 用于对文件进行写入操作。 | 详情 |
PrintWriter | 为文本输出流提供打印功能。 | 详情 |
对I/O整体结构的复习就到这里。想了解更多内容请参考
版权声明 |
---|
作者:潘威威 原文地址:****博客-潘威威的博客-http://blog.****.net/panweiwei1994/article/details/78067490 本文版权归作者所有,欢迎转载,但转载时请在文章明显位置给出原文作者名字(潘威威)及原文链接,否则作者将保留追究法律责任的权利。 |