Java-IO之总框架

 在Java IO中我们会经常提到输入流和输出流,流是一种抽象的数据总称,本质是能够进行数据的传输。按照流的方向分为:输入流和输出流。按照流中处理数据的单位,可以将其区分为:字节流和字符流。在Java中,字节就是1个Byte,8位,而字符是占2个Byte,16位,字节是有符号类型,字符是无符号类型的。
接下来分别讨论输入流、输出流、字节流和字符流。

一、以字节为单位的输入流的框架图: 

 从上图我们可以看出以字节为单位的输入流的公共父类是InputStream:
(1)InputStream是以字节为单位的输入流的超类,InputStream提供了接口从输入流中读取字节数据。
(2)ByteArrayInputStream是字节数组输入流,它的内部缓冲区是一个字节数组,本质是通过字节数组来是实现的。
(3)PipedInputStream是管道输入流,能够实现多线程间的管道通信。
(4)FilterInputStream是过滤输入流,它是DataInputStream和BufferedInputStream的超类。
(5)DataInputStream是数据输入流,用来装饰其他输入流,允许应用程序以与机器无关方式从底层输入流中读取基本Java数据类型。
(6)BufferedInputStream是缓冲输入流,作用是为另一个输入流添加缓冲功能。
(7)FileInputStream是文件输入流,通常用于对文件进行读取操作。
(8)File是文件和目录路径名的抽象表示形式,File不仅仅表示文件,也可以表示目录,它的超类是Object。
(9)FileDescriptor是文件描述符,用来表示开放文件,开放套接字等。
(10)ObjectInputStream是对象输入流,和ObjectOutputStream一起来对基本数据或对象进行持久存储

 从中我们可以看出,以字节为单位的输出流的公共父类是OutputStream:
(1)OutputStream是以字节为单位的输出流的超类,提供了write()函数从输出流中读取字节数据。
(2)ByteArrayOutputStream是字节数组输出流,写入ByteArrayOutputStream的数据被写入到一个byte数组,缓冲区会随着数据的不断写入而自动增长,可使用toByteArray()和toString()获取数据。
(3)PipedOutputStream是管道输出流,和PipedInputStream一起使用,能实现多线程间的管道通信。
(4)FilterOutputStream是过滤输出流,是DataOutputStream,BufferedOutputStream和PrintStream的超类
(5)DataOutputStream是数据输出流,用来装饰其他的输出流,允许应用程序以与机器无关方式向底层写入基本Java数据类型。
(6)BufferedOutputStream是缓冲输出流,它的作用是为另一个输出流添加缓冲功能。
(7)PrintStream是打印输出流,用来装饰其他输出流,为其他输出流添加功能,方便的打印各种数据值
(8)FileOutputStream是文件输出流,通常用于向文件进行写入操作。
(9)ObjectOutputStream是对象输出流,它和ObjectInputStream一起对基本数据或者对象的持久存储。

三、以字节为单位的输入流和输出流关联的框架图 

 从图我们可以看出,以字符为单位的输入流的公共类是Reader。
(1)Reader是以字符为单位的输入流的超类,它提供了read()接口来取字符数据。
(2)CharArrayReader 是字符数组输入流,用于读取字符数组,继承于Reader。操作的数据是以字符为单位。
(3)PipedReader 是字符类型的管道输入流,它和PipedWriter一起可以通过管道进行进程间的通讯,在使用管道通信时,必须将PipedWriter和PipedReader配套使用。
(4)FilterReader是字符类型的过滤输入流。
(5)BufferedReader是字符缓冲输入流,作用是为另一个输入流添加缓冲功能。
(6)InputStreamReader是字节转字符的输入流,它是字节流通向字符流的桥梁。
(7)FileReader是字符类型的文件输入流,通常用于对文件进行读取操作。

文章链接: https://www.mfisp.com/20627.html

文章标题:Java-IO之总框架

文章版权:梦飞科技所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
建站教程

ENUM类使用说明

2023-5-19 12:26:55

建站教程

基于注意力机制的四种增强型RNN(下)

2023-5-22 12:06:02

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
客户经理
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

梦飞科技 - 最新云主机促销服务器租用优惠