详解 I/O流

I/O流是用于处理设备之前信息传输的流,在我们今后的学习甚至是工作中,都是十分重要的。
在我们的日常生活中,也是很常见的,譬如:文件内容的合并、设备之键的文件传输,甚至是下载软件时的断点续传,都可以用I/O流的知识来实现。
那么,话不多说,现在本人就开始讲解吧:


@


在讲解I/O流之前,本人要先来讲解下另外两个相关知识点 —— 异常File类

那么,可能有的同学有疑问了—— 讲解IO流之前为什么先讲解异常和File类呢?
答曰:原因有两点:

  1. File类是I/O流将来需要操作的文件,所以我们需要学习 File类;
  2. 在操作文件的过程中,可能会出现问题,我们需要对相应的代码进行处理,所以我们需要学习 异常。

那么,本人就通过两篇博文先来介绍下 异常 以及 File类:

异常:

请观看本人博文——《详解 异常》


File类:

请观看本人博文——《详解 File类》


I/O流:

概述

又称“输入输出流
用于处理 设备之间的数据传输(即: 上传文件和下载文件

I/O流主要分为两大类:

分类

  1. 按照流向分:
  • 输入流—— 用于 读入数据
    (InputStream)
  • 输出流—— 用于 写出数据
    (OutputStream)

在这里本人要对上面的输入和输出做一点说明

说明:
这里的输入和输出都是针对内存而言

如下图所示:
在这里插入图片描述

  1. 按照操作数据的类型分
  • 字节流 —— 可以读写任意类型的文件
  • 字符流 —— 只能读写文本文件
    (字符流相当于包装了字节流,在读取文本文件时会更高效些)

在讲解所有流之前,本人要着重强调一个问题:

流用完之后,必须释放资源!!!(即:close()掉)


那么,现在,本人来讲解下I/O流的继承体系

I/O流的继承体系:

首先是 字节流
请观看本人博文 —— 《详解 字节流》

然后是 字符流
请观看本人博文 —— 《详解 字符流》

现在,本人来讲解下将要处理的信息存储在内存中的流 —— 内存操作流
请观看本人博文 ——《详解 内存操作流》

那么,本人再来讲解下 字节流 与 字符流 的共有子流 —— 打印流
请观看本人博文 ——《详解 打印流》

现在,本人再来讲解下一个很重要的流 —— 随机访问流
请观看本人博文 —— 《详解 随机访问流》

现在,本人再来讲解下一个很特殊的流 —— 序列化流 与 反序列化流
请观看本人博文 ——《详解 序列化流 与 反序列化流》

现在,本人来介绍一个 用于存储流信息的容器类 —— Properties类
请观看本人博文 ——《详解 Properties类》


其实,I/O流的子流还有很多,本人就通过讲解以上几个来展示下我们最经常用的几种。
通过本人的讲解,我们能够发现:
这些流中最基本的就是“字节流”,
也因此它使用起来比较麻烦,但是比较灵活,功能齐全。
其它的流基本上都是(除个别外,例:随机访问流)包装过的字节流,
也因此,这些流侧重点强,效率高,但是可能会丧失一些功能。

原文地址:https://www.cnblogs.com/codderYouzg/p/12418404.html