用字节流将一个Object对象持久化
注:
1.读取的时候不能被new
2.Object必需序列化
3.static的不能被序列化
可以为应用程序提供对对象图形的持久存储,用于恢复那些以前序列化的对象。
bjectOutputStream:
对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化
注:
1.读取的时候不能被new
2.Object必需序列化
3.static的不能被序列化
4.transient也不能被序列化,但它还是存在栈中
可以为应用程序提供对对象图形的持久存储,用于恢复那些以前序列化的对象。
bjectOutputStream:
对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化
只能将支持 java.io.Serializable 接口的对象写入流中
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class FileDemo6 {
public static void main(String[] args) throws Exception {
// 将对象持久化
// writerObj();
// 读取持久化类
readObj();
}
public static void readObj() throws Exception {
// 指定要读取的对象
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
"F:\\Objcet.object"));
// 将读取的对象转换成员工对象
FileDemo6_Emp emp = (FileDemo6_Emp) ois.readObject();
System.out.println(emp);
}
public static void writerObj() throws Exception {
// 创建一个写入流对象(后缀名自定义,反正直接打开了也是乱码)
ObjectOutputStream ois = new ObjectOutputStream(new FileOutputStream(
"F:\\Objcet.object"));
// 创建一个员工实体对象并写入指定文件中
ois.writeObject(new FileDemo6_Emp("zhangsan", 33));
// 关闭流
ois.close();
}
}
要操作的对象
import java.io.Serializable;
public class FileDemo6_Emp implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private int age;
public FileDemo6_Emp(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "FileDemo6_Emp [name=" + name + ", age=" + age + "]";
}
}