Java IO 操作主要对象介绍

本部分主要介绍:IO 操作的主要对象,以及使用注意事项

Java IO 相关类的介绍

  1. 类的相关关系

    • 如图

      Java.IO相关类介绍.jpg
  1. 基本规则

    • 如图

      IO 相关类的规则.jpg

Java IO 主要操作对象介绍

IO 的基本类

  1. 字节流(抽象类)

    • InputStream,从文件中读取数据

    • OutputStream,像文件中写入数据

  2. 字符流(抽象类)

    • Reader,从文件中读取数据

    • Writer,像文件中写入数据

  3. 字节流与字符流相互转换 (可以指定编码表)

    • InputStreamReader,字节流向字符流转换。解码

    • OutputStreamWriter,字符流向字节流转换。编码

  4. 字节流可以操作任何文件数据,如图片、音频、文本文件等。但是操作文件文件时,最好使用字符流操作

缓冲区

  1. 缓冲区的作用、特点

    • 提高输入、输出的效率

    • 字符流、字节流在使用缓冲区后,其中的输入、输出、刷新、关闭的方法都是使用缓冲区定义的

  2. 字符流缓冲区

    • BufferedReader

    • BufferedWriter

  3. 字符流缓冲区

    • BufferedInputStream

    • BufferedOutputStream

字符流

  1. 实际操作对象是 抽象类 的子类

    • FileReader

    • FileWriter

  2. FileReader 的方法

    • read()

    • 没有 flush() 方法

    • close()

  3. FileWriter 的方法

    • write()

    • flush()

    • close()

  4. 缓冲区的使用

    • BufferedReader(FileReader)

    • BufferedWriter(FileWriter)

字节流

  1. 实际操作对象是 抽象类 的子类

    • FileInputStream

    • FileOutputStream

  2. FileInputStream 的方法

    • read()

    • 没有 flush() 方法

    • close()

  3. FileOutputStream 的方法

    • write()

    • flush(),此方法的方法体中没有实际代码,刷不刷新没有实际意义。

    • close()

  4. 缓冲区的使用

    • BufferedInputStream(FileInputStream)

    • BufferedOutputStream(FileOutputStream)

      1. 缓冲区的 flush() 方法,有实际意义。

字节流与字符流相互转换

  1. 字节流转换为字符流

    InputStreamReader isr = new InputStreamReader(in);

  2. 字符流转换为字节流

    OutputStreamWriter osw = new OutputStreamWriter(out);

  3. 相互转换后,缓冲区同样使用

流的操作基本规律

  1. 介绍

    • 理解其规律,是因为 Java 的流对象较多,开发时需使用较为合理的对象

    • 主要从 4 方面体现

  2. 第一点:明确源和目的

      1. InputStream

      2. Reader

    • 目的

      1. OutputStream

      2. Writer

  3. 第二点:明确数据是否为纯文本数据

    • 源是否纯文本数据

      1. 是:Reader

      2. 否:InputStream

    • 目的是否为纯文本数据

      1. 是:writer

      2. 否:OutputStream

  4. 第三点:明确具体设备

    • 源设备

      1. 硬盘:File

      2. 键盘:System.in

      3. 内存:数组

      4. 网络:Socket流

    • 目的设备

      1. 硬盘:File

      2. 控制台:System.out

      3. 内存:数组

      4. 网络:Socket流

  5. 第四点:是否需要额外功能

    • 提高效率使用 Buffer

    • 字节流字符流相互转换

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容