前言:
IO对于系统设计来说,是一个很重要的关注点,往往系统运行的瓶颈就在IO设计上,无论是数据库IO,文件IO还是网络IO,都需要进行精致的设计,才能使得系统达到最佳运行状态。对于现代系统并发量、数据量的剧增,IO处理对于系统显得更加重要。研究Java IO对于我们工作有益无害。
Java.io包含了Java阻塞型IO的设计。Java的IO主要包含三个部分:
1.流式部分–IO的主体部分;
2.非流式部分–主要包含一些辅助流式部分的类,如:File类、RandomAccessFile类和FileDescriptor等类;
3.文件读取部分的与安全相关的类,如:SerializablePermission类。以及与本地操作系统相关的文件系统的类,如:FileSystem类和Win32FileSystem类和WinNTFileSystem类。
Java.io包中主要是字节流和字符流、输入与输出,流具有最基本的特点:流是一位的,单向的。
下面来看看java.io包中大部分类的具体类图,了解其继承关系。
字节输入流:
字节输出流:
字符输入流:
字节输出流:
由以上的类图可知,字节流和字符流大部分都是在InputStream、OutputStream、Writer、Reader接口约定实现的。
java.io系列接口和实现中,大量的使用了装饰者设计模式,这使得在不改变原有类结构的情况下,可以对类功能进行扩展,而且我们也可以创建自己的装饰者,来包装某些特定的流类。
接下来的系列中,本系列文章将从字节流开始讲起,针对每种流和每种装饰的流进行分析。文章分析重点在源码分析和应用。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-22 15:12:20