数据处理在程序内部执行,待处理的数据需要传入程序,处理后的数据可能会需要传出程序,数据在程序内部和外部之间的这种传输动作叫做IO操作。
与程序进行IO的端有控制台、文件(硬盘)、网络端口甚至是内存,对应包装的IO流对象有System.in、System.out,用文件名创建的输入输出流对象,由Socket获得的输入输出流对象、字节数组或者字符串等。
Java中字节流的基本框架如图一:
与程序进行IO的端有控制台、文件(硬盘)、网络端口甚至是内存,对应包装的IO流对象有System.in、System.out,用文件名创建的输入输出流对象,由Socket获得的输入输出流对象、字节数组或者字符串等。
Java中字节流的基本框架如图一:
图一
字符流的基本框架如图二:
图二
如图中描述的,字节流的基本来源有由System.in或System.out获得键盘或控制台的流,由String或File对象获得文件的流(输入 或输出),由Socket(getInputStream()方法或getOutputStream()方法)获得网络流(输入或输出),由字节数组或字符串获得内存内部数据的流;字符流有由String或File对象直接获得的文件的流(输入或输出),有由字符数组或字符串获得内存内部数据的流。剩下的流基本都是对这些基本流的包装(构造时将这些基本流的对象传入,并将基本流对象作为该类的成员,建立各种针对该基本流对象成员的方法)。
一、字节流
字节输入流就是用来读取的,其读取方法有:
int read()读取一个字节,并将该字节放于返回的int值的最低字节中,若读到流末尾返回-1
int read(byte[] b)