要保存一个类对象、集合或一般对象,并在之后加载它,可以使用 Java 的序列化和反序列化功能。下面是一个简单的示例:
import java.io.*;
public class Main {
public static void main(String[] args) {
// 创建一个对象
MyClass obj = new MyClass("Hello, World!");
// 保存对象到文件
saveObject(obj, "object.dat");
// 从文件加载对象
MyClass loadedObj = loadObject("object.dat");
// 打印加载的对象
System.out.println(loadedObj.getMessage());
}
// 保存对象到文件
public static void saveObject(Object obj, String filename) {
try {
FileOutputStream fileOut = new FileOutputStream(filename);
ObjectOutputStream objectOut = new ObjectOutputStream(fileOut);
objectOut.writeObject(obj);
objectOut.close();
fileOut.close();
System.out.println("对象已保存到:" + filename);
} catch (IOException e) {
e.printStackTrace();
}
}
// 从文件加载对象
public static MyClass loadObject(String filename) {
MyClass obj = null;
try {
FileInputStream fileIn = new FileInputStream(filename);
ObjectInputStream objectIn = new ObjectInputStream(fileIn);
obj = (MyClass) objectIn.readObject();
objectIn.close();
fileIn.close();
System.out.println("对象已从文件加载:" + filename);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
return obj;
}
}
class MyClass implements Serializable {
private String message;
public MyClass(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
这个示例中,MyClass
是一个可序列化的类,它实现了 Serializable
接口。我们首先创建一个 MyClass
对象,并将其保存到文件中,然后再从文件中加载对象并打印出其消息。
在 saveObject
方法中,我们使用 FileOutputStream
和 ObjectOutputStream
将对象写入文件。在 loadObject
方法中,我们使用 FileInputStream
和 ObjectInputStream
从文件中读取对象。
请确保文件路径是正确的,并拥有正确的读写权限。
下一篇:保存一个类中方法的结果