歡迎訪問北大青鳥魯廣校區~

  1. 加入收藏
  2. 設為主頁
  3. 學校簡介

三分鐘了解北大青鳥

×
  • 北大青鳥大數據課程
  • 北大青鳥網絡工程師
  • 北大青鳥web設計專業
  • 北大青鳥PHP專業
  • 北大青鳥啟蒙星課程

JAVA技術教程之java的序列化與反序列化

責任編輯:027hpedu來源:北大青鳥魯廣校區Java技術教程發布時間:2012-07-09 14:14
導讀:java技術教程的分享和學習能幫助學習java的人了解到更多的知識。北大青鳥武漢宏鵬魯廣校區下面進行java序列化和反序列化的分享,幫助大家了解java開發的更多知識。

  java技術教程的分享和學習能幫助學習java的人了解到更多的知識。马刺vs纳什武漢宏鵬魯廣校區下面進行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包的支持,

  //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

本文標題:JAVA技術教程之java的序列化與反序列化,責任編輯:027hpedu,來源:北大青鳥武漢宏鵬魯廣校,于2012年07月09日14時14分發布于马刺vs纳什。武漢北大青鳥宏鵬魯廣校區,是北大青鳥武漢電腦學校,專業IT計算機培訓,擁有軟件/網絡/安卓/Web前端/Java課程.北大青鳥地址:光谷廣場魯巷數碼港.電話:027-87807717

專業老師指導

趙老師

從事IT教育培訓十年有余,致力于幫助廣大學子找到適合自己的專業。

培訓咨詢客服

劉老師

IT培訓專業客服,用自己的真誠解決了無數學子的困惑。

本文地址:
文章標題:
  • 北大青鳥Java軟件開發
  • 北大青鳥UI設計課程_零基礎可學
  • 北大青鳥動漫設計_武漢設計學校
  • 北大青鳥數字藝術_武漢電腦學校
×
在線咨詢更多問題

如您有任何疑問
在線咨詢隨時為您解答或撥打咨詢熱線:17740513250

×
  • 姓 名*
  • 手 機*
  • QQ號/微信號
  • 所報學科 *
  • 其他備注
  • 溫馨提示:請保持手機暢通,咨詢老師將為您提供專屬的一對一報名服務。