您的位置:首页 > 编程语言 > Java开发

Java8 I/O源码-整体结构

2017-09-22 22:16 477 查看
在详细地对Java I/O系统中的各个类进行讲解前,先复习下Java I/O的整体结构。

如下图所示,基本包含了Java I/O中比较常用的类。



下面简单地介绍下它们。

字节流

InputStream

InputStream是以字节为单位的输入流。



介绍传送门
ByteArrayInputStream包含一个内部缓冲区,该缓冲区包含从流中读取的字节详情
PipedInputStream和PipedOutputStream一起使用,实现多线程间的管道通信。详情
FilterInputStreamFilterInputStream主要用途在于封装其他的输入输出流,为它们提供一些额外的功能。FilterInputStream的子类可进一步重写一些方法,并且还可以提供一些额外的方法和字段。详情
BufferedInputStream用于为其他输入流提供缓冲功能。详情
DataInputStream用来装饰其它输入流,以从底层输入流中读取基本Java数据类型。详情
FileInputStream文件输入流,用于从文件系统中的某个文件中获得输入字节。FileInputStream用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用FileReader。详情
ObjectInputStream对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化
SequenceInputStream串联输入流,将多个输入流转化为一个
StringBufferInputStream将String转化为输入流

OutputStream

OutputStream是以字节为单位的输出流。



介绍传送门
ByteArrayOutputStreamByteArrayOutputStream中数据被写入一个byte数组。缓冲区会随着数据的不断写入而自动增长。详情
PipedOutputStream和PipedInputStream一起使用,实现多线程间的管道通信。详情
FilterOutputStreamFilterOutputStream主要用途在于封装其他的输入输出流,为它们提供一些额外的功能。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整体结构的复习就到这里。想了解更多内容请参考

Java8 I/O源码系列专栏-目录

版权声明
作者:潘威威

原文地址:CSDN博客-潘威威的博客-http://blog.csdn.net/panweiwei1994/article/details/78067490

本文版权归作者所有,欢迎转载,但转载时请在文章明显位置给出原文作者名字(潘威威)及原文链接,否则作者将保留追究法律责任的权利。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: