Serializable java,具体例子
时间: 2023-04-09 13:00:56 浏览: 57
Serializable 是 Java 中的一个接口,用于实现对象的序列化和反序列化。当一个类实现了 Serializable 接口后,该类的对象就可以被序列化为一个字节流,以便在网络上传输或者保存到本地文件中。具体的例子可以是一个 User 类,该类包含了用户的姓名、年龄、性别等信息,通过实现 Serializable 接口,可以将该类的对象序列化为一个字节流,以便在网络上传输或者保存到本地文件中。
相关问题
Serializable,具体代码例子
Serializable 是 Java 中的一个接口,用于实现对象的序列化和反序列化。下面是一个简单的代码例子:
```
import java.io.*;
public class Person implements Serializable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void printInfo() {
System.out.println("Name: " + name);
System.out.println("Age: " + age);
}
public static void main(String[] args) {
Person person = new Person("Tom", 20);
try {
FileOutputStream fileOut = new FileOutputStream("person.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(person);
out.close();
fileOut.close();
System.out.println("Serialized data is saved in person.ser");
} catch (IOException i) {
i.printStackTrace();
}
try {
FileInputStream fileIn = new FileInputStream("person.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
Person newPerson = (Person) in.readObject();
in.close();
fileIn.close();
System.out.println("Deserialized data:");
newPerson.printInfo();
} catch (IOException i) {
i.printStackTrace();
return;
} catch (ClassNotFoundException c) {
System.out.println("Person class not found");
c.printStackTrace();
return;
}
}
}
```
在这个例子中,我们定义了一个 Person 类,实现了 Serializable 接口。我们将一个 Person 对象序列化到文件中,然后再从文件中反序列化出来,并打印出对象的信息。
java 反序列化例子
好的,以下是一个简单的 Java 反序列化例子:
假设你有一个名为 `MyObject` 的类,如下所示:
```java
import java.io.Serializable;
public class MyObject implements Serializable {
private String name;
private int age;
public MyObject(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
现在,你可以将这个对象序列化为一个文件,如下所示:
```java
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
public class SerializationExample {
public static void main(String[] args) {
MyObject obj = new MyObject("John", 30);
try {
FileOutputStream fos = new FileOutputStream("myobject.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(obj);
oos.close();
fos.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
```
接下来,你可以使用以下代码将该对象反序列化回来:
```java
import java.io.FileInputStream;
import java.io.ObjectInputStream;
public class DeserializationExample {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("myobject.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
MyObject obj = (MyObject) ois.readObject();
ois.close();
fis.close();
System.out.println("Name: " + obj.getName());
System.out.println("Age: " + obj.getAge());
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
```
注意:反序列化时,你需要强制转换为 `MyObject` 类型。