实体类Entity:
import java.io.Serializable;
public class Entity implements Serializable {
// 注意不要省略
private static final long serialVersionUID = 2139181745907483554L;
private String name;
private String phone;
private String wife;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getWife() {
return wife;
}
public void setWife(String wife) {
this.wife = wife;
}
@Override
public String toString() {
return "entity{" +
"name='" + name + ''' +
", phone='" + phone + ''' +
", wife='" + wife + ''' +
'}';
}
}
实现序列化和反序列化的接口SerInterface:
public interface SerInterface {
// 保存到文件中序列化和反序列化方法
public void serialization(Object object);
public Object deserialization();
// 保存到字节数组中的序列化和反序列化方法
public byte[] serializationOther(Object object);
public Object deserializationOther(byte[] data);
}
序列化和反序列化的实现类SerInterfaceImpl:
import java.io.*;
public class SerInterfaceImpl implements SerInterface {
@Override
public void serialization(Object object) {
ObjectOutputStream objectOutputStream = null;
try {
objectOutputStream = new ObjectOutputStream(new FileOutputStream(new File("object")));
objectOutputStream.writeObject(object);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (objectOutputStream != null) {
try {
objectOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
@Override
public Object deserialization() {
ObjectInputStream objectInputStream = null;
try {
objectInputStream = new ObjectInputStream(new FileInputStream(new File("object")));
return objectInputStream.readObject();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (objectInputStream != null) {
try {
objectInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
@Override
public byte[] serializationOther(Object object) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream = null;
try {
objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
objectOutputStream.writeObject(object);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (objectOutputStream != null) {
try {
objectOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return byteArrayOutputStream.toByteArray();
}
@Override
public Object deserializationOther(byte[] data) {
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(data);
ObjectInputStream objectInputStream = null;
Object object = null;
try {
objectInputStream = new ObjectInputStream(byteArrayInputStream);
object = objectInputStream.readObject();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (objectInputStream != null) {
try {
objectInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return object;
}
}
测试:
public class Test {
public static void main(String[] args) {
Entity entity = new Entity();
entity.setName("author");
entity.setPhone("12312341234");
entity.setWife("wife");
SerInterface serInterface = new SerInterfaceImpl();
// 保存到文件中
serInterface.serialization(entity);
Entity output = (Entity) serInterface.deserialization();
System.out.println(output.getName());
System.out.println(output.getPhone());
System.out.println(output.getWife());
System.out.println("--------------------------------");
// 保存到字节流中
byte[] bytes = serInterface.serializationOther(entity);
Entity outOther = (Entity) serInterface.deserializationOther(bytes);
System.out.println(output.getName());
System.out.println(output.getPhone());
System.out.println(output.getWife());
}
}
结果展示:
文件
控制台输出



