欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-11 22:24:13
本文实例分析了java序列化与反序列化操作。分享给大家供大家参考,具体如下: 概述: java序列化是指把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程序设计有所帮助。