import java.io.*;
class Person implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + "}";
}
}
public class SerializationExample {
public static void main(String[] args) {
// 创建一个Person对象
Person person = new Person("Alice", 30);
// 序列化过程:将对象写入文件
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.ser"))) {
oos.writeObject(person);
System.out.println("对象已序列化并保存到文件");
} catch (IOException e) {
e.printStackTrace();
}
// 反序列化过程:从文件中读取对象
Person deserializedPerson = null;
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.ser"))) {
deserializedPerson = (Person) ois.readObject();
System.out.println("从文件中反序列化对象: " + deserializedPerson);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
Serializable接口:为了使一个类的对象能够被序列化,该类必须实现Serializable接口。这个接口是一个标记接口,没有方法需要实现。serialVersionUID:这是序列化版本UID,用于确保序列化的类版本与反序列化的类版本一致。如果不显式定义,JVM会自动生成一个,但不推荐依赖默认生成的值。ObjectOutputStream和ObjectInputStream:这两个类分别用于将对象序列化为字节流和从字节流中反序列化对象。Person对象,将其序列化到文件中,然后再从文件中反序列化出来。上一篇:查询java版本命令
下一篇:java file转base64
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站