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

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

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

Wallace   2021-03-22 我要评论
想了解java序列化与反序列化操作实例分析的相关内容吗,Wallace在本文为您仔细讲解java序列化与反序列化的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点: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程序设计有所帮助。

猜您喜欢

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们