java IO 操作的类在java.io 包中,大概可以分为以下几组:
基于字节操作的接口:InputStream 和 OutputStream
基于字符操作的接口:Writer 和 Reader
基于磁盘操作的接口:File 相关
基于网络操作的接口:Socket 相关
前两个是数据格式区分,后两个是传输方式区分。IO 只是人机交互的手段,除了完成交互功能,我们关注的就是如何提高他的运行效率了,而数据格式和传输方式是影响效率的最关键的因素。
基于字节操作的接口
以下是 InputStream 的类层次关系图
其实还有很多子类没有展示出来,每个子类对应处理不同的操作类型。
以下是 OutputStream 的类层次关系图
两个要点:
1、操作数据的方式可以组合使用
2、必须制定流最终写到什么地方:要么是磁盘,要么是网络中。其实写网络也是写磁盘,只是需要让操作系统再将数据传送到其他地方,而不是本地磁盘。
基于字符操作的接口