Kotlin I/O 与文件管理(1)Java I/O 流概述

  • Java I/O 流概述

  • Java 流设计理念

  • Java 流类继承层次

    • 字节输入流
    • 字节输出流
    • 字符输入流
    • 字符输出流

  Kotlin I/O基于 Java I/O 流技术,但是 Java I/O 流技术使用起来比较繁琐,Kotlin 提供了很多扩展,是代码变得简洁。

一、Java I/O 流概述

  Kotlin I/O 流技术主要来自于 Java I/O 流技术,因此有必要先了解下 Java I/O 流技术。Java 将数据的输入和输出操作当作“流”来处理,“流”是一组有序的数据序列。“流”分为两种形式:输入流和输出流。从数据源中读取数据是输入流,将数据写入到目的地是输出流。

  提示:以 CPU 为中心,从外部设备读取数据到内存,进而再读入到 CPU,这是输入(Input,缩写 I)的过程;将内存中的数据写入到外部设备,这是输出(output,缩写 O)的过程。所以输出输出简称为 I/O。

二、Java 流设计理念

  数据输入的数据源有多种形式,如文件、网络和键盘灯,键盘是默认的标准输入设备。而数据输出的目的地也有多种形式,如文件、网络和控制台等。

I/O 流

  所有的输入形式都抽象为输入流,所有的输出形式都抽象为输出流,它们与设备无关。

三、Java 流类继承层次

  以字节为单位的流称为字节流,以字符为单位的流称为字符流。Java 提供 4 个顶层抽象类,两个字节流抽象类:InputStreamOutputStream;两个字符流抽象类:ReaderWriter

  • 1、字节输入流
    字节输入流的根类是 InputStream,它有很多子类,这些类的说明如下:
描述
FileInputStream 文件输入流
ByteArrayInputStream 面向字节数组的输入流
PipedInputStream 管道输入流,用于两个线程之间的数据传递
FilterInputStream 过滤输入流,它是一个装饰器,用来扩展其他输入流
BufferedInputStream 缓冲区输入流,它是 FilterInputStream 的子类
DataInputStream 面向基本数据类型的输入流
字节输入流类继承层次
  • 2、字节输出流
    字节输出流的根类是 OutputStream,它有很多子类,这些类的说明如下:
描述
FileOutputStream 文件输出流
ByteArrayOutputStream 面向字节数组的输出流
PipedOutputStream 管道输出流,用于两个线程之间的数据传递
FilterOutputStream 过滤输出流,它是一个装饰器,用来扩展其他输出流
BufferedOutputStream 缓冲区输出流,它是 FilterInputStream 的子类
DataOutputStream 面向基本数据类型的输出流
字节输出流类继承层次
  • 3、字符输入流
    字符输入流的根类是 Reader,这类流以 16 位的 Unicode 编码表示的字符为基本处理单位。它有很多子类,这些类的说明如下:
描述
FileReader 文件输入流
CharArrayReader 面向字符数组的输入流
PipedReader 管道输入流,用于两个线程之间的数据传递
FilterReader 过滤输入流,它是一个装饰器,用来扩展其他输入流
BufferedReader 缓冲区输入流,它也是一个装饰器,但不是 FilterReader 的子类
InputStreamReader 把字节流转换为字符流,它也是一个装饰器,是 FileReader 的父类
字符输入流类继承层次
  • 4、字符输出流
    字符输出流的根类是 Writer,这类流以 16 位的 Unicode 编码表示的字符为基本处理单位。它有很多子类,这些类的说明如下:
描述
FileWriter 文件输出流
CharArrayWriter 面向字符数组的输出流
PipedWriter 管道输出流,用于两个线程之间的数据传递
FilterWriter 过滤输出流,它是一个装饰器,用来扩展其他输出流
BufferedWriter 缓冲区输出流,它也是一个装饰器,但不是 FilterWriter 的子类
OutputStreamWriter 把字节流转换为字符流,它也是一个装饰器,是 FileWriter 的父类
字符输出流类继承层次
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容