Java 序列化和反序列化实例详解

网友投稿 238 2023-05-30


Java 序列化和反序列化实例详解

java 序列化和反序列化实例详解

在分布式应用中,对象只有经过序列化才能在各个分布式组件之间传输,这就涉及到两个方面的技术-发送者将对象序列化,接受者将对象反序列化,下面就是一个很好的例子!

1.实体-Employee

import java.io.Serializable;

public class Employee implements Serializhttp://able{

/**

*

*/

private static final long serialVersionUID = 1L;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

private String name;

private int age;

}

2.SerializeHelper

import java.io.BytHSmbyMxGJeArrayInputStream;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

public class SerializeHelper {

public byte[] Serialize(Object object) {

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

try {

ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);

//将对象写入到字节数组中进行序列化

objectOutputStream.writeObject(object);

return byteArrayOutputStream.toByteArray();

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

public Object deSerialize(byte[] bytes) {

//将二进制数组导入字节数据流中

ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);

try {

//将字节数组流转化为对象

ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);

return objectInputStream.readObject();

} catch (IOException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTracHSmbyMxGJe();

}

return null;

}

}

3.测试类

public class Hello {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

SerializeHelper serializeHelper = new SerializeHelper();

Employee employee = new Employee();

employee.setName("admin");

employee.setAge(20);

byte[] serializObject = serializeHelper.Serialize(employee);

System.out.println(serializObject);

Employee e = (Employee)serializeHelper.deSerialize(serializObject);

System.out.println("Name: " + e.getName()+",Age: " + e.getAge());

}

}

4.输出

[B@e05d173

Name: admin,Age: 20

5.总结

序列化和反序列化还有其他的框架可以完成,比如Hession,有机会再研究!

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java事务管理学习之JDBC详解
下一篇:Java事务管理学习之Hibernate详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~