首页 > 编程 > Java > 正文

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

2019-11-26 13:39:30
字体:
来源:转载
供稿:网友

本文实例分析了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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表