本文共 2241 字,大约阅读时间需要 7 分钟。
在分布式应用中,对象只有经过序列化才能在各个分布式组件之间传输,这就涉及到两个方面的技术-发送者将对象序列化,接受者将对象反序列化,下面就是一个很好的例子!
1.实体-Employee
import java.io.Serializable;public class Employee implements Serializable{ /** * */ 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.ByteArrayInputStream;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.printStackTrace(); } 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@e05d173Name: admin,Age: 205.总结
序列化和反序列化还有其他的框架可以完成,比如Hession,有机会再研究!
转载地址:http://dlsbb.baihongyu.com/