Java 的字节与字符输入/输出流的类整理——zyx笔记

目录前言输入流:InputStream/Reader一、InputStream1.1InputStream实现的接口Closeable:AutoCloseable:1.2InputStream直接子类1.2.1 AudioInputStream1.2.2 ByteArrayInputStream1.2.3 FileInputStream1.2.4 FilterInputStream1.2.5 ObjectInputStream1.2.6 PipedIn..
摘要由CSDN通过智能技术生成

目录

前言

输入流:InputStream/Reader

一、InputStream

1.1 InputStream实现的接口

Closeable:

AutoCloseable:

1.2 InputStream直接子类

1.2.1 AudioInputStream

1.2.2 ByteArrayInputStream

1.2.3 FileInputStream

1.2.4 FilterInputStream

1.2.5 ObjectInputStream

1.2.6 PipedInputStream

1.2.7 SequenceInputStream

1.2.8 StringBufferInputStream

二、Reader

2.1 Reader类实现的接口

2.2 Reader类的直接子类

2.2.1 BufferedReader

2.2.2 CharArrayReader

2.2.3 FilterReader

2.2.4 InputStreamReader

2.2.5 PipedReader

2.2.6 StringReader

输出流OutputStream/Writer

三、OutputStream

3.1 OutputStream类实现的接口

3.2 OutputStream类的直接子类

3.2.1 ByteArrayOutputStream

3.2.2 FileOutputStream

3.2.3 FilterOutputStream

3.2.4 ObjectOutputStream

3.2.5 PipedOutputStream

四、Writer

4.1 Writer实现的接口

4.2 Writer的直接子类

4.2.1 BufferedWriter

4.2.2 CharArrayWriter

4.2.3 FilterWriter

4.2.4 OutputStreamWriter

4.2.5 PipedWriter

4.2.6 PrintWriter

4.2.7 StringWriter


前言

Java定义了专门负责各种方式的输入输出,这些类都被放在java.io包中。其中,所有输入输出流都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类。所有输出流都是抽象类OutputStream(字节输出流)或抽象类Write(字符输出流)的子类

输入流:InputStream/Reader

一、InputStream

InputStream是字节输入流的抽象类,是所有字节输入流的父类。

接下来描述:InputStream类的层次结构

顶层:InputStream:字节输入流的抽象类;

1.1 InputStream实现的接口

  1. Closeable

  2. AutoCloseable

1.2 InputStream直接子类

1.2.1 AudioInputStream

一个音频输入流是一个有指定音频格式和长度的输入流。

1.2.2 ByteArrayInputStream

一个字节数组输入流包含一个内部缓存,包含可能会从流中读取的的字节。通过read方法一个内部计数器持续跟踪下一个被提供的字节。

1.2.3 FileInputStream

文件输入流从一个文件系统的一个文件中获取输入流。哪些文件可用取决于主机环境。FileInputStream用于读取原始字节流,如图像数据。要读取字符流,请考虑使用FileReader。

1.2.4 FilterInputStream

一个过滤流包含一些其他输入流,过滤流使用这些输入流作为它的基本数据源,可能会在这个过程中转换数据或者提供额外的功能。
FilterInputStream直接子类:

  1. BufferedInputStream:缓冲输入流向另一个输入流添加功能,即缓冲输入并支持标记和重置方法的能力。
  2. CheckedInputStream:一种输入流,它也维护正在读取的数据的校验和。校验和可用于验证输入数据的完整性。
  3. CipherInputStream:密码输入流由一个输入流和一个密码组成,因此read()方法返回的数据是从底层输入流读入的,但已由密码进行了额外处理。密码在被密码输入流使用之前必须完全初始化。
  4. DataInputStream:一个DataInputStream允许【应用程序】以独立于机器的方式从底层输入流中读取基本的Java数据类型。应用程序使用DataOutputStream写入数据,这些数据以后可以由DataInputStream读取。
  5. DeflaterInputStream:实现一个输入流过滤器,用于以“deflate”压缩格式压缩数据。
  6. DigestInputStream:一种透明(transparent)的流,使用流经该流的位来更新相关的信息摘要。
  7. InflaterInputStream:这个类实现了一个流过滤器,用于以“deflate”压缩格式解压缩数据。它还被用作其他解压缩过滤器的基础,如GZIPInputStream。
  8. LineNumberInputStream:这个类是一个输入流过滤器,它提供了跟踪当前行号的附加功能。
  9. ProgressMonitorInputStream:监控从某些输入流读取的进度。该ProgressMonitor通常以大致如下形式调用:
    InputStream in = new BufferedInputStream(
        new ProgressMonitorInputStream(
            parentComponent, 
            “Reading”+filename,
            new FileInputStream(fileName)));
    // 这将创建一个进度监视器来监视读取输入流的进度。
  10. PushbackInputStream:PushbackInputStream 通过将推回的字节存储在内部缓冲区中,加入功能到另一个输入流,即“push back”和“unread”bytes的能力。这在方便片段读取由特定字节限定的无限数量的数据的字节的情况下很有用;读取终止字节后,代码片段可以“未读”它。

1.2.5 ObjectInputStream

ObjectInputStream反序列化

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从零开始的智障生活

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值