import java.io.*;
import java.util.Arrays;
// 定义一个可序列化的类
class Person implements Serializable {
private static final long serialVersionUID = 1L;
public String name;
public 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 JavaSerializationExample {
// 序列化对象
public static void serializeObject(Person person, String fileName) {
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) {
oos.writeObject(person);
System.out.println("对象已成功序列化到文件: " + fileName);
} catch (IOException e) {
e.printStackTrace();
}
}
// 反序列化对象
public static Person deserializeObject(String fileName) {
Person person = null;
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(fileName))) {
person = (Person) ois.readObject();
System.out.println("对象已成功反序列化");
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
return person;
}
public static void main(String[] args) {
String fileName = "person.ser";
Person originalPerson = new Person("Alice", 30);
// 序列化
serializeObject(originalPerson, fileName);
// 反序列化
Person deserializedPerson = deserializeObject(fileName);
System.out.println("反序列化后的对象: " + deserializedPerson);
}
}
定义一个可序列化的类:
Person 类实现了 Serializable 接口,表示该类的对象可以被序列化。serialVersionUID 是一个序列化版本号,用于确保序列化和反序列化时类的版本一致。序列化对象:
serializeObject 方法将 Person 对象写入指定的文件中。使用 ObjectOutputStream 将对象转换为字节流并保存到文件。反序列化对象:
deserializeObject 方法从文件中读取字节流,并将其还原为 Person 对象。使用 ObjectInputStream 进行读取。主程序:
Person 对象并调用 serializeObject 方法进行序列化。deserializeObject 方法进行反序列化,并打印出反序列化后的对象信息。通过这个示例代码,你可以了解如何在 Java 中进行对象的序列化和反序列化操作。
下一篇:java string数组
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站