学习-java输入输出之对象io流之序列化一个对象
时间: 2023-04-16 10:02:46 浏览: 278
java对象的序列化
在Java中,可以通过对象IO流进行对象序列化。对象序列化是指将Java对象转换为字节序列的过程,以便可以将其存储在文件中或通过网络传输。
要进行对象序列化,需要满足以下条件:
1. Java类必须实现java.io.Serializable接口。
2. 所有对象的非瞬态变量都必须是可序列化的。
实现对象序列化的基本步骤如下:
1. 创建一个实现Serializable接口的Java类。
2. 创建一个ObjectOutputStream对象,并使用它来将Java对象写入文件或通过网络发送。
3. 创建一个ObjectInputStream对象,并使用它来从文件或网络接收Java对象。
4. 使用writeObject()方法将Java对象写入ObjectOutputStream对象。
5. 使用readObject()方法从ObjectInputStream对象读取Java对象。
以下是一个示例代码,演示如何将一个Java对象序列化并写入文件中:
```
import java.io.*;
public class SerializeDemo {
public static void main(String[] args) {
Employee e = new Employee();
e.name = "John Doe";
e.address = "1234 Main Street";
e.SSN = 11122333;
e.number = 101;
try {
FileOutputStream fileOut = new FileOutputStream("employee.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(e);
out.close();
fileOut.close();
System.out.printf("Serialized data is saved in employee.ser");
} catch (IOException i) {
i.printStackTrace();
}
}
}
class Employee implements java.io.Serializable {
public String name;
public String address;
public transient int SSN;
public int number;
}
```
在这个示例中,我们定义了一个名为Employee的类,并实现了Serializable接口。我们创建了一个Employee对象,并使用ObjectOutputStream将它写入文件中。最后,我们打印一条消息,表示对象已经成功序列化并保存在文件中。
请注意,在Employee类中,SSN字段被标记为transient,这意味着它不会被序列化。
阅读全文