Java IO的概念
Java中I/O操作主要是指使用Java进行输入,输出操作,Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。
流:流是磁盘或其它外围设备中存储的数据的源点或终点。
数据流:一组有序,有起点和终点的字节的数据序列。包括输入流和输出流。
输入流(Input Stream):程序从输入流读取数据源。数据源包括外界(键盘、文件、网络…),即是将数据源读入到程序的通信通道。
输出流:程序向输出流写入数据。将程序中的数据输出到外界(显示器、打印机、文件、网络…)的通信通道。
Java流的分类
- 按流向分:
输入流: 程序可以从中读取数据的流
输出流: 程序能向其中写入数据的流
- 按数据传输单位分:
字节流: 以字节为单位传输数据的流
字符流: 以字符为单位传输数据的流
- 按功能分:
节点流 : 用于直接操作目标设备的流
过滤流: 是对一个已存在的流的链接和封装,通过对数据进行处理为程序提供功能强 大、灵活的读写功能。
- java.io常用类
JDK 所提供的所有流类位于java.io包中,都分别继承自以下四种抽象流类:
InputStream :继承自InputStream的流都是用于向程序中输入数据的,且 数据单位 都是字节(8位)。
OutputSteam:继承自OutputStream的流都是程序用于向外输出数据的,且数据单位都是字节(8位)。
Reader:继承自Reader的流都是用于向程序中输入数据的,且数据单位都是字符(16位)
Writer:继承自Writer的流都是程序用于向外输出数据的,且数据单位都是字符(16位)
File (文件特征与管理):用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等
RandomAccessFile (随机文件操作):它的功能丰富,可以从文件的任意位置进行存取(输入输出)操作。
JAVA IO的总结结构
InputStream
OutputStream
Reader
Writer
后面章节会对InputStream、OutputSteam、Reader、Writer以及子类分别进行讲解,包括提供的方法,使用场景和代码例子。