详解 字节流
(请观看本人博文——《详解 I/O流》)
字节流:
本人先来展示下 字节流的继承体系:
继承体系:
(上图仅展示部分子类)
其实,字节流的子类很好辨认:
凡是以Stream为结尾的Java内置工具类都是字节流的子类
对于字节流而言,我们主要应用它的四个子类 —— FileOutputStream类 与 FileInputStream类 和 BufferedOutputStream类与BufferedInputStream类,它们都是字节输出/输入流,只不过存在效率问题。
那么,现在,本人就来讲解下这四个类的 基本知识点:
首先是 FileOutputStream类 与 FileInputStream类 :
字节输出流 与 字节输入流:
请观看本人博文 —— 《详解 字节输出流 与 字节输入流》
那么,现在本人来讲解下 BufferedOutputStream类与BufferedInputStream类:
高效字节流:
请观看本人博文 ——《详解 高效字节流》
现在,本人再来讲解下 数据输入输出流:
数据输入输出流:
请观看本人博文——《详解 数据输入输出流》
最后,本人再来讲解一个可以合并多个用InputStream的子流包装的文件的信息的流 —— SequenceInputStream 类:
请观看本人博文——《详解 序列输入流》
讲到这里,本人想要提到的是:高效字节流不一定比普通字节流要高效。
若是我们自己构建的缓冲区足够大,且要操作的文件也很大时,普通字节流不一定会比高效字节流效率低,当然,我们也可以在new高效字节流的对象时去定义缓冲区的大小。
总而言之,高效字节流是封装了的普通字节流。
那么,到目前为止,相信同学们已经学会了字节流的用法。
还记得本人在博文《详解 File类》中所讲的最后一个例子——删除多级文件夹吗?
那么,现在,让我们来通过一个阶段性小复案例来巩固下我们在本篇博文所学的知识点吧:
(若有兴趣,请观看本人博文——《阶段性复习与应用——复制多级文件夹》)
最最最重要的一点是:我们一定要牢记:
字节流是最底层的流,它处理文件的最小单位是字节,其它的流差不多都是在它的基础上封装起来的,但正因为如此,其它的流为了追求某些方面的功能而丧失另外一部分的功能,比如:
字符流对于处理文本文件来说是最方便不过的了,但是,字符流也被限制只能处理文本文件。
(本人 I/O流总集篇 博文链接:https:////www.cnblogs.com/codderYouzg/p/12418404.html)