个人对Java中IO流的笔记总结。
流是一种处理数据的方式,是有起点和终点的字节集合,是程序和特定设备之间的一个数据传输管道,可以对设备进行数据写出或读入。
Java中IO系统被划分为字节IO系统和字符IO系统2个独立系统,流相关的类或接口都在java.io包中。
Java类库预定义了3个流。在System类中的out(控制台)、in(键盘)、err(错误)这三个常量。
按照数据流向不同将流分为:输入流(读)、输出流(写)2种流。
按操作数据不同分:字节流、字符流。
字节流分为:
字节输入流(InputStream),是所有字节输入流的抽象根类。
字节输出流(OutputStream),是所有字节输出流的抽象根类。
字符流分为:
字符输入流(Reader),是所有字符输入流的抽象根类。
字符输出流(Writer),是所有字符输出流的抽象根类。
Java中还有字符流根类常见的子类:
- 字符缓冲流:BufferedReader(输入缓冲流)和BufferedWriter(输入流缓冲流),是:具有缓冲功能,可以有效率的提高字符输入或输出。
- 转换流:InputStreamReader(字符输入转换流)和OutputStreamWriter(字符输出转换流)类其实是字符流根类的子类,主要作用是:“根据的charset分别将字节输入或输出流转换为字符输入或输出流使用”。
注意 1. 流用完后需要使用close()方法进行关闭;
2. 输入流需要使用flush()方法来刷新,保证数据的完整性;
3. 关闭流需要从后向前关闭,也就是先打开的流最后关闭;