• 技术文章 >Java >java教程

    Java序列化和反序列化的示例代码分享

    黄舟黄舟2017-03-27 10:33:59原创469
    这篇文章主要介绍了Java 序列化和反序列化实例详解的相关资料,需要的朋友可以参考下

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

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

    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@e05d173 
    Name: admin,Age: 20

    5.总结

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

    以上就是Java序列化和反序列化的示例代码分享的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    上一篇:Java事务管理学习之详解JDBC的示例代码 下一篇:Java反射实现Aop代理的代码案例详解
    大前端线上培训班

    相关文章推荐

    • 理解java8中java.util.function.*pojo反射新方法(附代码)• 浅析安卓app和微信授权登录及分享完整对接(代码分享)• 教你一招搞定时序数据库在Spring Boot中的使用• 一招教你使用java快速创建Map(代码分享)• PlayFramework 完整实现一个APP(十一)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网