1、什么是IO
输入:将外存的数据读入内存
输出:将内存的数据写入外存
2、java中的IO主要有四种:
(1)基于字节操作的IO接口:InputStream和OutputStream
(2)基于字符操作的IO接口:Writer和Reader
(3)基于磁盘的操IO接口:File
(4)基于网络操作的IO接口:Socket
字符流是通过字节流转码而来的
3、io机制
因为磁盘设备是操作系统来管理的,所以我们操作磁盘的时候,必须要通过系统调用来进行。
这样,不管读还是写操作,都要先经过内核,内核成为应用进程和磁盘的中转,而内核态和用户态的切换是非常耗时的,所以,内核设置了缓存机制,
就减少了不断的内核态和用户态的切换。
4、Reader和Writer
文字的操作优先使用字符流操作
对字符文件的写操作
FIleWriter f = new FileWriter(“E://a.txt”);
f.write("hello world");
f.flush();
f.close();
对文件进行续写:使用另一个构造方法 FileWriter("E://a.txt",true);
对字符文件进行读操作
char [] buf = new char[100];
FileReader r = new FileReader(“E://a.txt”);
r.read(buf);
5、字符流缓冲区
什么是缓冲区:对操作的内容进行缓存,能够提高效率
BufferWriter BufferReader(装饰设计模式)
装饰设计模式:对一组对象的功能进行增强时,就使用该模式进行问题解决。