-本文仅为个人学习总结,方便个人复习,文章大部分内容为参考资料上的知识点。
Java IO流的实现机制
在Java语言中,输入和输出都被称为抽象的流,流可以被看做一组有序的字节集合,即数据在量设备之间的传输。流的本质是数据传输,根据处理数据类型的不同,流可以分为两大类:字节流和字符流。字节流以字节(8bit)为单位,包含两个抽象类:InputStream(输入流)和OutputStream(输出流)。字符流以字符(16bit)为单位,根据码表映射字符,一次可以读多个字节,它包含两个 抽象类:Reader(输入流)和Writer(输出流)。字节流和字符流最主要的区别为:字节流在处理输入输出时不会用到缓存,而字符流用到了缓存。
InputStream(抽象组件):(抽象装饰者)ByteArrayInputStream、StringBufferInputStream、FileInputStream、PipedInputStream、FilerInputStream(DataInputStream、BufferedInputStream、LineNumeInputStream、PushbackInputStream)。
其中,ByteArrayInputStream、StringBufferInputStream、FileInputStream、PipedInputStream时Java提供的最基本的对流进行处理的类,FilterInputStream为一个封装类的基类,可以对基本的IO类进行封装,通过调用这些类提供的基本的流操作方法来实现更复杂得到流操作。