java序列化与反序列化操作实例分析

 更新时间:2016年10月26日 11:34:33   作者:Wallace  
这篇文章主要介绍了java序列化与反序列化操作,结合实例形式分析了java序列化与反序列化的概念与具体实现技巧,需要的朋友可以参考下

本文实例分析了java序列化与反序列化操作。分享给大家供大家参考,具体如下:

概述:

Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。

示例代码:

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
public class Test {
  /**
   * @param args
   */
  public static void main(String[] args) {
    try {
      ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("D:/objectFile.obj"));
      Customer customer = new Customer("中国人",23);
      out.writeObject("你好!");
      out.writeObject(new Date());
      out.writeObject(customer);
      out.writeInt(123);
      List list = new ArrayList();
      int i =0 ;
      while(i<100) {
        Customer customer2 = new Customer("中国人",i);
        list.add(customer2);
        i++;
      }
      HashMap hashMap = new HashMap();
      hashMap.put("customer", list);
      out.writeObject(hashMap);
      out.close();
      ObjectInputStream in = new ObjectInputStream(new FileInputStream("D:/objectFile.obj"));
      System.out.println("obj1= " + (String) in.readObject());
      System.out.println("obj2= " + (Date) in.readObject());
      Customer obj3 = (Customer) in.readObject();
      System.out.println("obj3= " + obj3);
      int obj4 = in.readInt();
      System.out.println("obj4= " + obj4);
      Object obj5 = in.readObject();
      System.out.println(obj5);
      HashMap hash_map = (HashMap)obj5;
      List l = (List) hash_map.get("customer");
      System.out.println("size: " + l.size());
      for(int ii=0; ii<l.size() -1 ; ii++) {
        Customer c = (Customer)l.get(ii);
        System.out.println(c.getName());
        System.out.println(c.getAge());
      }
      in.close();
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
    }
  }
}
class Customer implements Serializable {
  private static final long serialVersionUID = 1L;
  private String name;
  private int age;
  public String getName() {
    return name;
  }
  public int getAge() {
    return age;
  }
  public Customer(String name, int age) {
    this.name = name;
    this.age = age;
  }
  public String toString() {
    return "name=" + name + ", age=" + age;
  }
}

希望本文所述对大家java程序设计有所帮助。

相关文章

  • 关于jpa中无法删除onetomany中many问题的解决

    关于jpa中无法删除onetomany中many问题的解决

    这篇文章主要介绍了关于jpa中无法删除onetomany中many问题的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 探究MyBatis插件原理以及自定义插件实现

    探究MyBatis插件原理以及自定义插件实现

    这篇文章主要介绍了探究MyBatis插件原理以及自定义插件实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • java获取当前日期使用实例

    java获取当前日期使用实例

    本文为大家介绍java日期的使用实例,日期输出格式为date:2013-12-17,大家参考使用吧
    2014-01-01
  • SpringMVC4+MyBatis+SQL Server2014实现数据库读写分离

    SpringMVC4+MyBatis+SQL Server2014实现数据库读写分离

    这篇文章主要介绍了SpringMVC4+MyBatis+SQL Server2014实现读写分离,需要的朋友可以参考下
    2017-04-04
  • Java实现复原IP地址的方法

    Java实现复原IP地址的方法

    这篇文章主要介绍了Java实现复原IP地址的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • springboot+webmagic实现java爬虫jdbc及mysql的方法

    springboot+webmagic实现java爬虫jdbc及mysql的方法

    今天小编就为大家分享一篇springboot+webmagic实现java爬虫jdbc及mysql的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Spring Boot整合持久层之JdbcTemplate多数据源

    Spring Boot整合持久层之JdbcTemplate多数据源

    持久层是JavaEE中访问数据库的核心操作,SpringBoot中对常见的持久层框架都提供了自动化配置,例如JdbcTemplate、JPA 等,MyBatis 的自动化配置则是MyBatis官方提供的。接下来分别向读者介绍Spring Boot整合这持久层技术中的整合JdbcTemplate
    2022-08-08
  • eclipse+maven+spring mvc项目基本搭建过程

    eclipse+maven+spring mvc项目基本搭建过程

    这篇文章主要介绍了eclipse+maven+spring mvc项目基本搭建过程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • RabbitMQ延迟队列及消息延迟推送实现详解

    RabbitMQ延迟队列及消息延迟推送实现详解

    这篇文章主要介绍了RabbitMQ延迟队列及消息延迟推送实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Java Web项目中编写定时任务的实现

    Java Web项目中编写定时任务的实现

    本篇文章主要介绍了Java Web项目中编写定时任务的实现,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01

最新评论