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

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

作者: 狼性代码人 | 来源:发表于2019-06-25 11:14 被阅读0次
    • 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 的父类
    字符输出流类继承层次

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/emtnqctx.html