面向字节的输入输出流

    |     2015年4月17日   |   输入输出(IO)操作   |     0 条评论   |    1600

字节流以字节为传输单位,读写 8 位数据。除了纯文本,还能处理图片、音频这类二进制文件。InputStream 和 OutputStream 是所有字节流的父类,同样都是抽象类。

程序里真正 new 出来的,一般是它们某个子类的对象;调用继承来的 read() / write(),就能对外设做输入输出。

一、面向字节的输入流 InputStream

面向字节的输入流都是 InputStream 的子类,层次结构如图 10-6:

═╝╧ё (7)

表 10-5 列出了 InputStream 的主要子类及说明:

═╝╧ё (8)

═╝╧ё (9)

二、面向字节的输出流 OutputStream

面向字节的输出流都是 OutputStream 的子类,层次结构如图 10-7:

═╝╧ё (10)

表 10-7 列出了 OutputStream 的主要子类及说明:

═╝╧ё (11)

═╝╧ё (12)

抽象父类 方向 单位 典型子类
InputStream 读入 字节(8 位) FileInputStream、BufferedInputStream
OutputStream 写出 字节(8 位) FileOutputStream、BufferedOutputStream

三、抽象类怎么用

因为 InputStream 和 OutputStream 都是抽象类,不能直接 new。创建的输入/输出流对象,通常是某个具体子类的实例,再通过继承来的 read()、write() 完成读写。

  • 文本、按行处理:优先字符流(Reader / Writer)
  • 图片、压缩包、任意二进制:用字节流
  • 需要缓冲时,用对应的 Buffered 装饰流包一层

一句话总结:字节流管 8 位数据、能读二进制;具体读写交给 InputStream / OutputStream 的子类,不要去 new 这两个抽象类。

转载请注明来源:面向字节的输入输出流
本文链接地址:https://ai.zhousir.top/?p=251
回复 取消