基础IO

在整个 Java.io 包中最重要的是 5 个类和 1 个接口:

  • 5 个类指的是 FileOutputStreamInputStreamWriterReader

  • 1 个接口指的是 Serializable

从数据传输方式的角度

从数据传输方式的角度看,可以将 IO 类分为:

字节流
  • InputStream

    • ByteArrayInputStream

    • FileInputStream

    • PipedInputStream

    • FilterInputStream

      • DataInputStream

      • BufferedInputStream

    • ObjectInputStream

  • OutputStream

    • ByteArrayOutputStream

    • FileOutputStream

    • PipedOutputStream

    • FilterOutputStream

      • DataOutputStream

      • BufferedOutputStream

      • PrintStream

    • ObjectOutputStream

字符流
  • Reader

    • CharArrayReader

    • InputStreamReader

      • FileReader

    • PipedReader

    • FilterReader

    • BufferedReader

      • LineNumberReader

    • StringReader

    • LineReader

  • Writer

    • CharArrayWriter

    • OutputStreamWriter

      • FileWriter

    • PipedWriter

    • FilterWriter

    • BufferedWriter

    • StringWriter

    • PrintWriter

字节流读取单个字节,字符流读取单个字符(一个字符根据编码的不同,对应的字节也不同,如 UTF-8 编码中文汉字是 3 个字节)。

从数据来源的角度

从数据来源或者说是操作对象角度看,IO 类可以分为:

文件
  • FileInputStream

  • FileOutputStream

  • FileReader

  • FileWriter

数组
  • ByteArrayInputStream

  • ByteArrayOutputStream

  • CharArrayReader

  • CharArrayWriter

管道
  • PipedInputStream

  • PipedOutputStream

  • PipedReader

  • PipedWriter

基本数据类型
  • DataInputStream

  • DataOutputStream

  • StringReader

  • StringWriter

缓冲操作
  • BufferedInputStream

  • BufferedOutputStream

  • BufferedReader

    • LineNumberReader

  • BufferedWriter

打印
  • PrintStream

  • PrintWriter

序列化与反序列化
  • ObjectInputStream

  • ObjectOutputStream

转换
  • InputStreamReader

  • OutputStreamWriter

最后更新于