IO流解析概述
前言
- 本文主要对JDK1.7的IO流进行整体的概述,具体的分析在其他几篇博客展开
背景知识
对IO流有基本的了解,理解装饰器模式和适配器模式
IO流体系结构图(可下载后放大观看)
- 该图用Intellij idea自动生成IO包
具体分析
- 可以从图中看出所有的IO流的主要功能类都实现了或间接实现了Closeable,Flushable两个接口
public interface Closeable extends AutoCloseable {
/**
* 用它关闭流或者释放系统资源
* 如果流已经关闭,这个方法将没有任何影响
*
* @throws IOException if an I/O error occurs
*/
public void close() throws IOException;
}
public interface Flushable {
/**
* 调用 flush 方法将所有已缓冲输出写入底层流。
* stream.
*
* @throws IOException If an I/O error occurs
*/
void flush() throws IOException;
}
-
IO流主要分成两类:字节类和字符类
- 字节流:OutputStream和InputStream
- 字符流: Writer和Reader
-
IO异常类均继承了java.io.Serializable ,便于写入日志文件