我们有时候想把一个对象写到一个文件上,实现持久化,可以这么做
class User{
String userName ;
String password;
public User(String userName , String passwrod) {
this.userName = userName;
this.password = passwrod;
}
@Override
public String toString() {
return "用户名:"+this.userName+ " 密码:"+ this.password;
}
}
public class Test {
public static void main(String[] args) throws IOException, Exception {
writeObj();
}
//定义方法把对象的信息写到硬盘上------>对象的序列化。
public static void writeObj() throws IOException{
//把user对象的信息持久化存储。
User user = new User("admin","123");
//找到目标文件
File file = new File("/Users/chen/Downloads/obj.txt");
//建立数据输出流对象
FileOutputStream fileOutputStream = new FileOutputStream(file);
//建立对象的输出流对象
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
//把对象写出
objectOutputStream.writeObject(user);
//关闭资源
objectOutputStream.close();
}
}
运行时发现报错java
Exception in thread “main” java.io.NotSerializableException: User
要求必要需实现serializable接口,serializable接口没有任何方法,是一个标识接口。
在user类后面implements Serializable,然后打开obj.txt文件会发现是一堆字节码文件,这是原先的对象编译后的,我们如果要看这个对象需要反序列化
View Code
输出:
对象的信息:用户名:admin 密码:123