福彩内蒙古时时彩开奖结果 内蒙古时时彩单式上传 内蒙古时时彩结果查询 内蒙古时时彩软件 内蒙古时时彩500走势图 内蒙古时时彩五码走势怎么看 内蒙古时时彩直播开奖 内蒙古时时彩计划软件 内蒙古时时彩五星图 内蒙古时时彩预测最准 内蒙古时时彩三星玩法 彩票内蒙古时时彩 内蒙古时时彩怎么兑奖 内蒙古时时彩软件手机版 内蒙古时时彩现场直播开奖记录 内蒙古时时彩彩票控 内蒙古时时彩快三开奖 内蒙古时时彩计划软件 彩票内蒙古时时彩 内蒙古时时彩最快开奖 福彩内蒙古时时彩 内蒙古时时彩走势图彩经 内蒙古时时彩历史开奖号码查询 内蒙古时时彩5个号走势 内蒙古时时彩wifi 内蒙古时时彩单式 内蒙古时时彩开奖现场报码 内蒙古时时彩五星走势图 内蒙古时时彩最新开奖结果查询 内蒙古时时彩奖金 内蒙古时时彩计划软件手机版 360彩票内蒙古时时彩 内蒙古时时彩软件手机版 内蒙古时时彩11选5开奖结果 内蒙古时时彩最新开奖号码 内蒙古时时彩走势图彩 内蒙古时时彩11走势图 内蒙古时时彩玩法说明 内蒙古时时彩现场直播 内蒙古时时彩官网平台 内蒙古时时彩玩法规则 内蒙古时时彩平台网址 内蒙古时时彩中奖规则 内蒙古时时彩走势图彩经 内蒙古时时彩奖金对 内蒙古时时彩形态走 内蒙古时时彩奖金 内蒙古时时彩历史开奖记录查询 内蒙古时时彩稳赚 今日内蒙古时时彩

IT职业教育

华中地区北大青鸟校区IT集训营

027-87807717

北大青鸟首页 > 热门IT技术教程 > Java技术教程 > > JAVA技术教程之java的序列化与反序列化

JAVA技术教程之java的序列化与反序列化

时间:2012-07-09 14:14 来源:北大青鸟武汉宏鹏鲁广校区作者:027hpedu
导读:java技术教程的分享和学习能帮助学习java的人了解到更多的知识。北大青鸟武汉宏鹏鲁广校区下面进行java序列化和反序列化的分享,帮助大家了解java开发的更多知识。

  java技术教程的分享和学习能帮助学习java的人了解到更多的知识。北大青鸟武汉宏鹏鲁广校区下面进行java序列化和反序列化的分享,帮助大家了解java开发的更多知识。

  基本概念:

  序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。

  昨天在一本书上看到了,好好实践了一下,序列化为一般文件,也序列化为XML文件(使用XStream)。

  用于序列化的实体类Person.java 代码如下(记得需要实现Serializable接口):

  import java.io.Serializable;

  @SuppressWarnings("serial")

  public class Person implements Serializable{

  private String name;

  private int age;

  public Person(){

  }

  public Person(String str, int n){

  System.out.println("Inside Person's Constructor");

  name = str;

  age = n;

  }

  String getName(){

  return name;

  }

  int getAge(){

  return age;

  }

  }

  [hr]

  序列化、反序列化为一般的文件,SerializeToFlatFile.java类的代码如下:

  import java.io.FileInputStream;

  import java.io.FileOutputStream;

  import java.io.ObjectInputStream;

  import java.io.ObjectOutputStream;

  public class SerializeToFlatFile {

  public static void main(String[] args) {

  SerializeToFlatFile ser = new SerializeToFlatFile();

  ser.savePerson();

  ser.restorePerson();

  }

  public void savePerson(){

  Person myPerson = new Person("Jay",24);

  try {

  FileOutputStream fos = new FileOutputStream("E:\\workspace\\2010_03\\src\\myPerson.txt");

  ObjectOutputStream oos = new ObjectOutputStream(fos);

  System.out.println("Person--Jay,24---Written");

  System.out.println("Name is: "+myPerson.getName());

  System.out.println("Age is: "+myPerson.getAge());

  oos.writeObject(myPerson);

  oos.flush();

  oos.close();

  } catch (Exception e) {

  // TODO: handle exception

  e.printStackTrace();

  }

  }

  public void restorePerson() {

  try {

  FileInputStream fis = new FileInputStream("E:\\workspace\\2010_03\\src\\myPerson.txt");

  ObjectInputStream ois = new ObjectInputStream(fis);

  Person myPerson = (Person)ois.readObject();

  System.out.println("\n--------------------\n");

  System.out.println("Person--Jay,24---Restored");

  System.out.println("Name is: "+myPerson.getName());

  System.out.println("Age is: "+myPerson.getAge());

  } catch (Exception e) {

  // TODO: handle exception

  e.printStackTrace();

  }

  }

  }

  运行结果为(console输出),当然可以查看到myPerson.txt文件已经生成:

  Inside Person's Constructor

  Person--Jay,24---Written

  Name is: Jay

  Age is: 24

  --------------------

  Person--Jay,24---Restored

  Name is: Jay

  Age is: 24

  [hr]

  序列化、反序列化为XML文件,我使用了XStream来序列化,需要引入xstream-1.3.1.jar包的支持,

  http://xstream.codehaus.org/download.html 处可以下载jar,然后引入到Eclipse中的build path中。

  Serialize.java的代码如下:

  import java.io.FileInputStream;

  import java.io.FileNotFoundException;

  import java.io.FileOutputStream;

  import com.thoughtworks.xstream.*;

  public class Serialize {

  public static void main(String[] args) {

  Serialize ser = new Serialize();

  ser.serializeToXml();

  ser.deSerializeFromXml();

  }

  public void serializeToXml(){

  Person[] myPerson = new Person[2];

  myPerson[0] = new Person("Jay",24);

  myPerson[1] = new Person("Tom",23);

  XStream xstream = new XStream();

  try {

  FileOutputStream fos = new FileOutputStream("E:\\workspace\\2010_03\\src\\myPerson.xml");

  xstream.toXML(myPerson,fos);

  } catch (FileNotFoundException ex) {

  ex.printStackTrace();

  }

  System.out.println(xstream.toXML(myPerson));

  }

  public void deSerializeFromXml(){

  XStream xs = new XStream();

  Person[] myPerson = null;

  try {

  FileInputStream fis = new FileInputStream("E:\\workspace\\2010_03\\src\\myPerson.xml");

  myPerson=(Person[])xs.fromXML(fis);

  if (myPerson != null)

  {

  int len = myPerson.length;

  for (int i=0;i

  {

  System.out.println(myPerson.getName());

  System.out.println(myPerson.getAge());

  }

  }

  } catch (FileNotFoundException ex) {

  ex.printStackTrace();

  }

  }

  }

  运行结果为(console输出),当然可以查看到myPerson.xml文件已经生成:

  Inside Person's Constructor

  JAVA技术教程之java的序列化与反序列化知识的分享让更多喜欢java分析的人了解到更多的问题。北大青鸟武汉宏鹏鲁广校区的老师帮助大家进行了解,更多问题解答请咨询在线老师或致电:027-87807717

告诉我们,你现在想了解什么?

精?#39318;?#39064;——96%的同学看到这里都会点击下面的专题

  • 关于我们
  • 鲁广校区北大青鸟宏鹏IT学院

    • 北大青鸟(武汉宏鹏)鲁广北校区地址:武汉市洪山区珞瑜路724号地铁二号线光谷广场E出口
      电话:027-87807717
      网址:www.027hpit.com

    • 北大青鸟宏鹏IT学院:武汉市洪山区鲁磨路568号
      电话:027-87808818
      网址:www.accp027.com

    • 北大青鸟(武汉宏鹏)鲁广南校区:武汉市洪山区珞瑜路724号武汉数码港五楼
      电话:027-87807736
      网址:www.whhpit.com

Copyright (c) 2006-2020 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.

内蒙古时时彩开奖现场