Buffered和Object IO流都属于包装流。
BufferedReader和BufferedWriter
注:1. readLine方法读取一行,读取完毕返回null。
2. BufferedReader的关闭只需要关闭包装流,节点流在包装流关闭后会自动关闭。
注:
new FileWriter(filePath,true); //表示以追加的方式写入
new FileWriter(filePath); // 表示以覆盖的方式写入
BufferedReader 和 BufferedWriter 是安装字符操作。不要去操作二进制文件(声音,视频,doc等),可能造成文件损坏。
BufferedInputStream和BufferedOutputStream
前面的Buffered使用writer和reader,这个Buffered使用 FileInputStream和FileOutputStream
ObjectInputStream和ObjectOutputStream
假如说我们只想把"10"这个数存到文件里,那么只是保存值,用不上ObjectInputStream。但如果想把值和数据类型都保存,比如Dog类或者"int a = 10",那么就需要用到了。
ObjectOutputStream提供 序列化功能。 ObjectInputStream提供 反序列化功能。
注:Dog类需要实现Serializable接口
class Dog implements Serializable{
...
}
值得注意的是:1. 读取顺序必须和write顺序一致。 2. 读取自定义类时,这个类需要能被访问到。
3. ObjectInputStream和ObjectOutputStream都是只关闭外流就可以了。