1、IO流中的抽象类:
类 | 说明 |
File | 文件类 |
InputStream | 字节输出流 |
OutputStream | 字节输出流 |
Reader | 字符输入流 |
Writer | 字符输出流 |
2、流的本质是数据的传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
3、按照流是否直接与特定的地方(文件、磁盘、内存、设备等)相连,分为节点流和处理流两类。
3.1节点流:
FileInputStream/FileOutputStream:对文件的读和写(只针对字节数据操作)。
FileReader/FileWriter:对文件的读和写(只针对字符数据操作)。
其中:字节流能处理所有的对象(图片,avi),而字符流只能处理字符类型的数据,如果要处理的对象是纯文本文件,优先使用字符流。除此之外都使用字节流。
3.2处理流:
缓冲流:BufferedInputStream/BufferedOutputStream
BufferedReader/BufferedWriter
缓冲流增加了缓冲功能,避免频繁读写硬盘,可是初始化数据的大小,由于带了缓冲功能,所以就写数据的时候需要用flush方法,BufferedReader中有个很有用的方法,readLine(),可以整行整行的读取。
转换流:InputStreamReader/OutputStreamWriter
作为从字节流到字符流的转换。
数据流:DataInputStream/DataOutputStream:提供将基础数据类型写入文件中,或者读取出来。
对象流:ObjectInputStream/ObjectOutputStream
这两个类读写的对象必须实现序列化,用于从底层数据流中读取对象类型的数据和将对象类型的数据写入到底层输出流中。