美文网首页
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 流概述

    Java I/O 流概述Java 流设计理念Java 流类继承层次字节输入流字节输出流字符输入流字符输出流   K...

  • 操作系统(五)输入/输出(I/O)管理

    5.1 I/O管理概述 5.1.1 I/O设备 “I/O”就是“输入/输出”(Input/Output)I/O设备...

  • 操作系统之设备管理

    一、I/O管理概述 1.1 计算机I/O系统结构 1.2 I/O管理示意图 1.3 I/O的特点 I/O性能经常称...

  • 16、I/O系统(操作系统笔记)

    一、I/O管理概述 1.1 计算机I/O系统结构 1.2 I/O管理示意图 1.3 I/O的特点 I/O性能经常称...

  • 操作系统(五)——I/O管理

    I/O管理主要通过对设备状态跟踪对设备存取数据、设备分配、及设备控制进行管理。 (一)I/O管理概述 1. I/O...

  • 流?I/O操作?阻塞?epoll?

    一、流?I/O操作? 阻塞? (1) 流 可以进行I/O操作的内核对象 文件、管道、套接字…… 流的入口:文件描述...

  • I/O操作的实现

    目录 I/O子系统概述 用户空间I/O软件 用户程序中的I/O函数 文件的基本概念 系统级I/O函数 C标准I/O...

  • NIO-Buffer使用

    ByteBuffer的概述 Buffer是java NIO的通道与I/O通信的入口,Buffer是通道向I/O发送...

  • I/O

    Java I/O 总结 理解Java中字符流与字节流的区别 深入学习 Java 序列化 Java I/O 操作及优...

  • IO 泄露

    概述 I/O监控,可以监控APP运行时,出现的I/O问题,包括文件主线程I/O,读写buffer太小,重复读,文件...

网友评论

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

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