编写Java应用程序,创建一个可序列化类,将该类的对象写入到文件中。
时间: 2024-03-16 17:42:34 浏览: 62
好的,以下是一个可以实现该功能的Java代码示例:
```java
import java.io.*;
// 可序列化类
class SerializableClass implements Serializable {
private static final long serialVersionUID = 1L; // 序列化版本号
private int number;
private String message;
public SerializableClass(int number, String message) {
this.number = number;
this.message = message;
}
public int getNumber() {
return number;
}
public String getMessage() {
return message;
}
}
public class SerializableDemo {
public static void main(String[] args) {
SerializableClass obj = new SerializableClass(123, "Hello World!");
// 序列化对象写入文件
try {
FileOutputStream fileOut = new FileOutputStream("obj.ser"); // 创建文件输出流
ObjectOutputStream out = new ObjectOutputStream(fileOut); // 创建对象输出流
out.writeObject(obj); // 写入序列化对象
out.close();
fileOut.close();
System.out.println("Serialized data is saved in obj.ser");
} catch (IOException e) {
e.printStackTrace();
}
// 从文件中反序列化对象
try {
FileInputStream fileIn = new FileInputStream("obj.ser"); // 创建文件输入流
ObjectInputStream in = new ObjectInputStream(fileIn); // 创建对象输入流
SerializableClass newObj = (SerializableClass) in.readObject(); // 读取序列化对象
in.close();
fileIn.close();
System.out.println("Deserialized data: " + newObj.getNumber() + " " + newObj.getMessage());
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
在上述代码中,`SerializableClass`类实现了`Serializable`接口,表示该类可以被序列化。在`main`函数中,首先创建一个`SerializableClass`对象`obj`,然后使用`ObjectOutputStream`将该对象序列化并写入文件,文件名为`obj.ser`。接着使用`ObjectInputStream`从文件中读取序列化对象,并将其赋值给`SerializableClass`类型的新对象`newObj`,最后输出`newObj`的属性值。需要注意的是,序列化版本号需要定义为`private static final long`类型的类常量,以确保序列化和反序列化的兼容性。
希望这个示例对你有帮助!
阅读全文