IO流常用的有:字符流、字节流、缓冲流、序列化、RandomAccessFile类等,以上列出的都是开发中比较常用的。
1、字节流:
字节流包含:FileInputStream/FileOutputStream、BufferedInputStream/BufferedOutputStream
2、字符流:
字符流包含:InputStreamReader/OutputStreamWriter、BufferedReader/BufferedWriter、FileReader/FileWriter,其中BufferedReader/BufferedWriter也称作字符流的过滤器,可以一次读一行、写一行,FileReader/FileWriter是从InputStreamReader/OutputStreamWriter继承而来,InputStreamReader/OutputStreamWriter、BufferedReader/BufferedWriter、是继承Reader/Writer而来的。
3、缓冲流(字节流下的缓冲流):
缓冲流:BufferedInputStream/BufferedOutputStream,也就是说,缓冲流其实是属于字节流的。
4、RandomAccessFile类
RandomAccessFile类从字面意思来看,就是随机写入写出,也就是说这个类有写入、写出两种方法。
5、对象的序列化、反序列化流(ObjectOutputStream、ObjectInputStream)
序列化流、反序列化流涉及到序列化接口(Serializable),想要实现对象的序列化和反序列化,该对象必须继承序列化接口(即implement Serializable)
注意:所有的流在完成操作后要执行关闭流的操作(.close()),同时对于输入流要进行刷新(.flush())。