Java IO(一) 之 IO总览
2015-07-25 22:51
429 查看
前言:
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包中大部分类的具体类图,了解其继承关系。
字节输入流:
![](https://img-blog.csdn.net/20150725224832053)
字节输出流:
![](https://img-blog.csdn.net/20150725225017482)
字符输入流:
![](https://img-blog.csdn.net/20150725224919976)
字节输出流:
![](https://img-blog.csdn.net/20150725224936544)
由以上的类图可知,字节流和字符流大部分都是在InputStream、OutputStream、Writer、Reader接口约定实现的。
java.io系列接口和实现中,大量的使用了装饰者设计模式,这使得在不改变原有类结构的情况下,可以对类功能进行扩展,而且我们也可以创建自己的装饰者,来包装某些特定的流类。
接下来的系列中,本系列文章将从字节流开始讲起,针对每种流和每种装饰的流进行分析。文章分析重点在源码分析和应用。
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系列接口和实现中,大量的使用了装饰者设计模式,这使得在不改变原有类结构的情况下,可以对类功能进行扩展,而且我们也可以创建自己的装饰者,来包装某些特定的流类。
接下来的系列中,本系列文章将从字节流开始讲起,针对每种流和每种装饰的流进行分析。文章分析重点在源码分析和应用。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统