数据流的方向:输入流,输出流(方向,判断由程序到文件还是由文件到程序)
处理数据的单位:字节流(一次读入或读出是8位二进制)(后缀是Stream),字符流(一次读入或读出是16位二进制)(后缀是Reader,Writer)
节点流:直接与数据源相连,读入或读出。
处理流:与节点流一块使用,在节点流的基础上,再套接一层,套接在节点流上的就是处理流。
直接使用节点流,读写不方便,为了更快的读写文件,才有了处理流。
Jdk提供的流继承了四大类:InputStream(字节输入流),OutputStream(字节输出流),Reader(字符输入流),Writer(字符输出流)。
流的操作规律:
1、明确源和目的。
数据源:就是需要读取,可以使用两个体系:InputStream、Reader;
数据汇:就是需要写入,可以使用两个体系:OutputStream、Writer;
2、操作的数据是否是纯文本数据?
如果是:数据源:Reader
数据汇:Writer
如果不是:数据源:InputStream
数据汇:OutputStream
3、虽然确定了一个体系,但是该体系中有太多的对象,到底用哪个呢?
明确操作的数据设备。
数据源对应的设备:硬盘(File),内存(数组),键盘(System.in)
数据汇对应的设备:硬盘(File),内存(数组),控制台(System.out)。
4、需要在基本操作上附加其他功能吗?比如缓冲。
如果需要就进行装饰。
/记住,只要一读取键盘录入,就用这句话。BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));