第一套:字节流读取写入方案
FileInputStream :字节流方式读取文本文件
FileOutputStream:字节流写入硬盘
第二套:字符流读取写入方案
FileReader:字符流读取文本
FileWriter:字符流写入文本
BufferedReader:自定义缓存大小,读取文本 8192个char
BufferedWriter:写入文本
一般和FileReader和FileWriter结合使用
第四套:可以读取二进制(img图片等 )
DataInputStream:将本地的img加载到内存中
DataOutputStream::将内存中的二进制数据写入到硬盘上的某个文件中。
序列化和反序列化:
//序列化
List<Dog> list=new ArrayList<Dog>();
list.add(new Dog("豆豆",15));
list.add(new Dog("豆豆2",15));
F
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(list);
fos.close();
oos.close();
System.out.println("序列化成功!");
反序列化
FileInputStream fis=new FileInputStream("save.bin");
ObjectInputStream ois=new ObjectInputStream(fis);
List<Dog> list=(List<Dog>)ois.readObject();
for (Dog dog : list) {
System.out.println(dog.getName());
}
注意点:
01.如果自定义类需要被序列化,那么必须实现Serializable接口
02.禁止某个属性被序列化
使用transient修饰
比如:
transient public String msg