精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用 XStream 把 Java 對(duì)象序列化為 XML

開發(fā) 后端
XML 序列化用處很多,包括對(duì)象持久化和數(shù)據(jù)傳輸。但是一些 XML 序列化技術(shù)實(shí)現(xiàn)起來(lái)可能很復(fù)雜。XStream 是一個(gè)輕量級(jí)的、簡(jiǎn)單易用的開放源代碼 Java™ 庫(kù),用于將 Java 對(duì)象序列化為 XML 或者再轉(zhuǎn)換回來(lái)。了解如何設(shè)置 XStream,如何使用它序列化和逆序列化對(duì)象以及從 XML 配置文件讀取配置屬性。

使用 XStream 不用任何映射就能實(shí)現(xiàn)多數(shù) Java 對(duì)象的序列化。在生成的 XML 中對(duì)象名變成了元素名,類中的字符串組成了 XML 中的元素內(nèi)容。使用 XStream 序列化的類不需要實(shí)現(xiàn) Serializable 接口。XStream 是一種序列化工具而不是數(shù)據(jù)綁定工具,就是說(shuō)不能從 XML 或者 XML Schema Definition (XSD) 文件生成類。

和其他序列化工具相比,XStream 有三個(gè)突出的特點(diǎn):

1. XStream 不關(guān)心序列化/逆序列化的類的字段的可見(jiàn)性。

2. 序列化/逆序列化類的字段不需要 getter 和 setter 方法。

3. 序列化/逆序列化的類不需要有默認(rèn)構(gòu)造函數(shù)。

不需要修改類,使用 XStream 就能直接序列化/逆序列化任何第三方類。


設(shè)置開發(fā)環(huán)境

按照下列步驟下載和安裝 XStream(下載鏈接參見(jiàn) 參考資料):

1. 從 Eclipse 網(wǎng)站下載 Eclipse。安裝的時(shí)候?qū)⑵浣鈮旱竭x定的文件夾,本文中用 eclipse_home 表示。本文假定使用 Eclipse 3.3。

2. 從 XStream 網(wǎng)站下載最新的 XStream 穩(wěn)定版本。安裝的時(shí)候解壓到選定的文件夾,本文用 xstream_home 表示。假定使用的 XStream 版本是 1.2.2。

3. 從 Sun 網(wǎng)站下載 Java Platform, Standard Edition (J2SE) 軟件開發(fā)工具箱(SDK)。安裝到選定的文件夾,本文用 java_home 表示。假定版本為 1.5.0_05。

創(chuàng)建一個(gè) Java 項(xiàng)目

要?jiǎng)?chuàng)建一個(gè) Java 項(xiàng)目,需要選擇 File > New > Project,然后按下列步驟操作:

1. 選擇 Java > Java Project > Next(如圖 1 所示)。

 
圖 1. 新建 Java 項(xiàng)目

2. 填寫項(xiàng)目名稱并單擊 Next(如 圖 2 所示)。 

 
圖 2. 填寫項(xiàng)目名稱

3. 單擊 Finish 完成該任務(wù)(如 圖 3 所示)。

 
圖 3. 完成設(shè)置

#p#

圖 4 顯示了新建的 Java 項(xiàng)目。

 
圖 4. 新建的 Java 項(xiàng)目

添加 XStream 支持

按照下列步驟向新建的項(xiàng)目添加 XStream 庫(kù):

1. 在 Eclipse 的 Project Explorer 中選擇新建的項(xiàng)目,從 Project 菜單中選擇 Properties(如 圖 5 所示)。

 
圖 5. 添加 XStream 庫(kù)

2. 單擊 Add External JARs,從 xstream_home/lib 文件夾中選擇 xstream-1.2.2.jar。

3. 單擊 OK 結(jié)束(如 圖 6 所示)。

 
圖 6. 完成 XStream 支持的添加

圖 7 顯示了添加 XStream 支持后的項(xiàng)目。

 
圖 7. 添加的庫(kù)


序列化對(duì)象

這個(gè)簡(jiǎn)單的例子示范了如何使用 XStream 序列化/逆序列化對(duì)象,包括兩個(gè)類:Writer 和 Reader。Writer 類使用 XStream API 把 Employee 類型的對(duì)象序列化為 XML 并存儲(chǔ)到文件中(如 清單 1 所示)。

清單 1. Writer.java

package com.samples;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import com.thoughtworks.xstream.*;

public class Writer {

 public static void main(String[] args) {
 Employee e = new Employee();

 //Set the properties using the setter methods
 //Note: This can also be done with a constructor.
 //Since we want to show that XStream can serialize
 //even without a constructor, this approach is used.
 e.setName("Jack");
 e.setDesignation("Manager");
 e.setDepartment("Finance");

 //Serialize the object
 XStream xs = new XStream();

 //Write to a file in the file system
 try {
 FileOutputStream fs = new FileOutputStream("c:/temp/employeedata.txt");
 xs.toXML(e, fs);
 } catch (FileNotFoundException e1) {
 e1.printStackTrace();
 }
 }
}

Reader 類讀取該文件,逆序列化 XML 并把數(shù)據(jù)裝入 Java 對(duì)象(如 清單 2 所示)。

#p#

清單 2. Reader.java

package com.samples;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import com.thoughtworks.xstream.*;
import com.thoughtworks.xstream.io.xml.DomDriver;

public class Reader {

 public static void main(String[] args) {
 XStream xs = new XStream(new DomDriver());
 Employee e = new Employee();

 try {
 FileInputStream fis = new FileInputStream("c:/temp/employeedata.txt");
 xs.fromXML(fis, e);

 //print the data from the object that has been read
 System.out.println(e.toString());

 } catch (FileNotFoundException ex) {
 ex.printStackTrace();
 }

 }
}

清單 3 顯示了 Employee 對(duì)象的結(jié)構(gòu)。

package com.samples;

public class Employee {
 private String name;
 private String designation;
 private String department;

 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
 public String getDesignation() {
 return designation;
 }
 public void setDesignation(String designation) {
 this.designation = designation;
 }
 public String getDepartment() {
 return department;
 }
 public void setDepartment(String department) {
 this.department = department;
 }
 @Override
 public String toString() {
 return "Name : "+this.name+
 "\nDesignation : "+this.designation+
 "\nDepartment : "+this.department;
 }
}


讀取配置文件
 
多數(shù)應(yīng)用程序都要用到一些屬性。這些屬性可能是要連接的數(shù)據(jù)源的名稱或者日志文件的位置。配置文件最適合存儲(chǔ)這類數(shù)據(jù),從而在修改這些屬性的時(shí)候不需要重新編譯應(yīng)用程序,應(yīng)用程序維護(hù)起來(lái)也更容易。下面的例子說(shuō)明如何在應(yīng)用程序中使用 XStream 從 XML 配置文件中讀取配置屬性。

XML 數(shù)據(jù)綁定通常需要從 XML 文件生成 Java 對(duì)象。使用 XStream 省略了生成對(duì)象這個(gè)步驟。只需要編寫一個(gè) Java 類將類的字段映射到希望讀取的 XML 的元素。這個(gè)例子使用的配置文件如 清單 4 所示。

清單 4. Config.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
 <datasource-name>IRIS</datasource-name>
 <ipaddress>9.124.74.85</ipaddress>
 <logfilename>DailyLogApplication.log</logfilename>
 <appender>console</appender>
</config>

清單 5 顯示的 ConfigReader 類讀取該配置文件并將屬性加載到 Java 對(duì)象中。

清單 5. ConfigReader.java

package com.samples;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import com.thoughtworks.xstream.*;
import com.thoughtworks.xstream.io.xml.DomDriver;

public class ConfigReader {

 String datasourcename = null;
 String ipaddress = null;
 String logfilename = null;
 String appender = null;

 @Override
 public String toString() {
 // This method prints out the values stored in the member variables
 return "Datasource Name : "+datasourcename+
 " \nIP Address : "+ipaddress+
 " \nLogfilename : "+logfilename+
 " \nAppender : "+appender;
 }

 /**
 * @param args
 * @throws FileNotFoundException
 */
 public static void main(String[] args) throws FileNotFoundException {
 XStream xs = new XStream(new DomDriver());

 FileInputStream fis = new FileInputStream("c:/temp/Config.xml");
 xs.aliasField("datasource-name", ConfigReader.class, "datasourcename");
 xs.alias("config", ConfigReader.class);
 ConfigReader r = (ConfigReader)xs.fromXML(fis);

 System.out.println(r.toString());
 }
}


結(jié)束語(yǔ)

創(chuàng)建和開發(fā)使用 XStream 的應(yīng)用程序只需要簡(jiǎn)單的幾個(gè)步驟。本文介紹如何使用 XStream 序列化/逆序列化 Java 對(duì)象和讀取配置文件,通過(guò) XStream 網(wǎng)站(教程鏈接參見(jiàn) 參考資料)可以進(jìn)一步了解別名、注解和轉(zhuǎn)換程序。別名和轉(zhuǎn)換程序可以讓您完全控制生成的 XML。

【編輯推薦】

  1. JavaScript解析XML的方法總結(jié)
  2. 在ASP.NET中使用Treeview控件和XML
  3. SQL Server 2005中XML操作函數(shù)詳解
責(zé)任編輯:楊鵬飛 來(lái)源: IBM
相關(guān)推薦

2010-01-04 09:40:46

F#對(duì)象

2009-03-10 13:38:01

Java序列化字節(jié)流

2012-04-13 10:45:59

XML

2010-01-08 13:25:07

ibmdwXML

2009-09-09 15:47:27

XML序列化和反序列化

2009-09-09 14:45:41

XML序列化和反序列化

2018-03-19 10:20:23

Java序列化反序列化

2011-05-18 15:20:13

XML

2009-06-14 22:01:27

Java對(duì)象序列化反序列化

2011-06-01 15:05:02

序列化反序列化

2012-02-14 10:29:02

Java

2013-02-27 09:58:32

JavaJID

2013-02-28 10:00:43

JIDJava序列化

2011-06-01 14:26:11

序列化

2009-09-09 15:54:48

C# XML序列化

2009-08-25 14:59:39

C# XML序列化應(yīng)用

2009-09-09 17:14:24

XML序列化

2010-05-14 10:55:04

java對(duì)象序列化

2009-09-09 17:10:50

C# XML序列化

2021-08-30 12:25:12

Python序列化函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产精品88久久久久久| 国内激情视频在线观看| 久久狠狠亚洲综合| 久久视频在线播放| 97人人模人人爽人人澡| mm1313亚洲国产精品美女| 懂色av一区二区三区蜜臀| 91地址最新发布| 国产精品理论在线| 亚洲日本一区二区三区在线| 欧美日韩激情视频8区| 五月婷婷综合色| 国产精品视频久久久久久| 红桃视频国产一区| www.日韩大片| 国产精品久久久999| 欧美日韩在线视频免费播放| 亚洲天堂日韩在线| 欧美一区二区在线播放| 丰满爆乳一区二区三区| 久久亚洲天堂| 久久精品亚洲一区二区三区浴池 | 免费毛片在线看片免费丝瓜视频 | 人交獸av完整版在线观看| 久久在线观看免费| 国产富婆一区二区三区 | 在线男人天堂| 一区二区三区中文字幕电影| 欧美亚洲国产免费| 婷婷av一区二区三区| 韩国v欧美v日本v亚洲v| 国产精品99久久久久久久久久久久| 日韩欧美123区| 波多野结衣在线播放一区| 亚洲精品久久久一区二区三区 | 91欧美在线| 最新成人av在线| 欧美精品一区二区视频 | 日本综合视频| 欧美日韩国产精品一区二区不卡中文| 女人床在线观看| 日本在线观看| 中文字幕一区二区三区色视频| 裸体丰满少妇做受久久99精品 | 亚洲精品资源在线| 人妻 丝袜美腿 中文字幕| 四虎精品在线观看| 欧美伊人精品成人久久综合97| 狠狠噜天天噜日日噜| 欧美jizz18性欧美| 国产精品久久久久7777按摩| 视频一区免费观看| 成人免费在线观看| 国产精品无遮挡| 亚洲精品无人区| 狠狠v欧美ⅴ日韩v亚洲v大胸| av不卡在线观看| 精品国产综合久久| 天堂av网在线| 久久色在线视频| 精品一区二区国产| 青青九九免费视频在线| 久久久蜜臀国产一区二区| 久久伊人资源站| 夫妇露脸对白88av| 人人爽人人爽人人片av| 欧美在线观看天堂一区二区三区| 久久久精品亚洲| 一区视频免费观看| 欧美日韩理论| 992tv成人免费影院| 免费毛片一区二区三区| 精品成人国产| 久久久久久亚洲精品中文字幕 | 国产日本在线| 国产精品亲子伦对白| 这里只有精品66| 国产在线激情| 偷拍日韩校园综合在线| 黄在线观看网站| 88xx成人网| 欧美一区二区网站| 久久久久久久无码| 欧美一级淫片| 欧美成人免费全部| 九九精品免费视频| 狠狠色综合播放一区二区| 成人欧美一区二区三区在线观看| 性xxxfllreexxx少妇| 久久久久国产精品人| 香蕉视频在线网址| 波多一区二区| 欧美亚洲自拍偷拍| 免费在线观看日韩av| 欧美极品在线观看| 欧美另类xxx| 国产午夜麻豆影院在线观看| 国产在线精品一区二区夜色| 激情小说综合区| 香蕉视频在线免费看| 午夜精品在线看| 国产精品拍拍拍| 永久免费精品视频| 国产一区二区三区在线免费观看| 国产这里有精品| 亚洲av综合色区无码一二三区 | 日本精品免费在线观看| 欧美高清你懂的| 亚洲成色777777女色窝| 国产免费嫩草影院| 噜噜噜躁狠狠躁狠狠精品视频| 国产精品永久免费视频| 亚洲 小说区 图片区 都市| 自拍偷拍国产精品| 99热成人精品热久久66| 清纯唯美激情亚洲| 欧美性20hd另类| 人人爽人人爽av| 国产一区二区三区网| 欧美黄色www| 中文字幕在线观看欧美| 91色porny| 2019日韩中文字幕mv| 四虎国产精品免费久久5151| 精品呦交小u女在线| 精品无码久久久久| 国产麻豆91精品| 在线电影看在线一区二区三区| 精品国产第一福利网站| 欧美精品一区二区三区四区| 印度午夜性春猛xxx交| 久久成人羞羞网站| 日韩精品久久久免费观看 | 福利一区和二区| 亚洲黄页视频免费观看| 九九九久久久久| 久久99久久99小草精品免视看| 日本一区免费看| 最新中文字幕视频| 涩涩涩在线视频| 精品1区2区在线观看| 日韩精品一区二区三区在线视频| 日韩精彩视频在线观看| 蜜桃成人免费视频| 亚洲精品一区| 亚洲欧美一区二区激情| 六月丁香激情综合| www国产精品av| 亚洲乱码中文字幕久久孕妇黑人| 欧美深夜视频| 亚洲97在线观看| 天天爽夜夜爽夜夜爽| 五月婷婷欧美视频| 欧美无人区码suv| 亚洲欧美日韩一区在线观看| 美女被啪啪一区二区| 欧美成人黑人| 一区二区av在线| 亚洲字幕av一区二区三区四区| 国产精品毛片无遮挡高清| 激情视频免费网站| 国产精品二区不卡| 91九色国产在线| 色婷婷在线播放| 亚洲高清在线观看| 精品91久久久| 2022国产精品视频| 欧美性猛交久久久乱大交小说| 欧美色图在线播放| 成人自拍性视频| 国产探花视频在线观看| 日韩精品在线观| 亚洲av无码乱码国产精品fc2| 亚洲国产经典视频| 樱花草www在线| 在线精品一区二区| 日本欧洲国产一区二区| 亚洲成人a级片| 欧美激情手机在线视频 | 亚洲国产精品高清| 精品国产午夜福利在线观看| 亚洲人体偷拍| 国产成人黄色av| 日韩在线免费电影| 日韩精品一区二区在线| 久久久精品麻豆| 精品人妻无码一区二区| 中文字幕在线观看一区| 韩国黄色一级片| 久久国产福利| 欧美精品久久96人妻无码| 欧美大胆a级| 国产日产久久高清欧美一区| 国产精品偷拍| 尤物yw午夜国产精品视频| a天堂中文在线观看| 黑人巨大精品欧美一区二区免费| 亚洲午夜久久久久久久国产| 国产精品一区二区三区99| 日韩欧美精品在线观看视频| 久久久久亚洲| 欧美成人免费在线| 少妇精品在线| 国产精品久久久亚洲| 美女网站视频在线| 在线一区二区日韩| 天天干,夜夜爽| 91精品欧美一区二区三区综合在| 国产专区第一页| 亚洲精品国产无套在线观| 亚洲精品国产熟女久久久| 国产成人免费视| 亚洲免费看av| 亚洲专区一区二区三区| 中文字幕日韩精品无码内射| 国产欧美日韩一区二区三区四区| 成人动漫在线视频| 狂野欧美性猛交xxxx| 国模gogo一区二区大胆私拍| 精品孕妇一区二区三区| 亚洲午夜激情免费视频| 亚洲AV成人无码一二三区在线| 日韩一区二区三区视频| 中文字幕资源网| 色婷婷av一区| 日日噜噜噜噜人人爽亚洲精品| 亚洲精品乱码久久久久久久久 | 日韩二区三区| 欧美大胆人体bbbb| 国产美女自慰在线观看| 欧美三区在线视频| 日韩中文字幕高清| 色综合久久综合中文综合网| 国产性xxxx高清| 亚洲线精品一区二区三区| 欧美日韩在线国产| 一区二区三区精品在线观看| 日韩福利小视频| 国产精品久99| 三上悠亚在线观看视频| 国产欧美日韩综合| 人妻aⅴ无码一区二区三区 | 国产一区二区在线网站| 一区二区亚洲视频| 粉嫩av免费一区二区三区| 国产亚洲高清一区| 999热视频在线观看| 精品国产亚洲一区二区三区在线 | 亚洲欧美日韩系列| 麻豆精品国产免费| 日韩一区中文字幕| 97在线观看视频免费| 中文字幕中文乱码欧美一区二区| 中文字幕黄色网址| 国产精品伦一区| 侵犯稚嫩小箩莉h文系列小说| 日韩毛片精品高清免费| 日本 欧美 国产| 亚洲欧美日韩国产中文在线| 日韩高清dvd碟片| 亚洲专区一二三| 日本一区二区免费在线观看| 天天操天天色综合| 亚洲黄网在线观看| 在线观看日产精品| 91麻豆成人精品国产| 欧美一区二区啪啪| 色窝窝无码一区二区三区| 亚洲国产欧美久久| 国产中文字幕在线| 色婷婷**av毛片一区| av免费在线网站| 久久久久久有精品国产| 大胆人体一区| 国产一区二区香蕉| 在线精品视频一区| 久久久亚洲综合网站| 成人一区而且| japanese在线播放| 国产偷自视频区视频一区二区| 天天天干夜夜夜操| 国产剧情一区二区三区| 影音先锋资源av| 国产日产欧美一区| 精品爆乳一区二区三区无码av| 欧美日韩国产丝袜另类| 在线播放成人av| 亚洲成人黄色在线观看| 欧美巨乳在线| 欧美成人sm免费视频| 在线观看福利电影| 国产精品视频一| 日韩欧美高清一区二区三区| 国产亚洲女人久久久久毛片| 五月六月丁香婷婷| av中文字幕亚洲| 国产亚洲精品精品精品| 一区二区高清视频在线观看| 狠狠人妻久久久久久| 欧美乱熟臀69xxxxxx| 五月婷婷丁香花| 日韩中文字幕网| 日本不良网站在线观看| 成人高清视频观看www| 日韩超碰人人爽人人做人人添| 亚洲 日韩 国产第一区| 最新国产拍偷乱拍精品| 中文字幕22页| 91麻豆国产福利精品| 国产高潮流白浆| 欧美自拍偷拍一区| 亚洲福利在线观看视频| 在线播放精品一区二区三区 | 日韩免费视频在线观看| 亚洲乱码一区| 国产奶头好大揉着好爽视频| 久久狠狠一本精品综合网| 一区二区三区人妻| 国产精品传媒入口麻豆| 波多野结衣啪啪| 亚洲经典中文字幕| 美女精品视频| 亚洲在线观看视频网站| 久久国产精品亚洲人一区二区三区 | 亚洲一区二区三区在线免费观看| 美女精品一区最新中文字幕一区二区三区| 激情五月五月婷婷| 久久国产麻豆精品| 国产又大又粗又爽的毛片| 五月天国产精品| 性做久久久久久久| 毛片精品免费在线观看| 欧美成人毛片| 亚洲高清视频一区| 日本亚洲最大的色成网站www| 欧美做受喷浆在线观看| 亚洲成av人片www| 日批视频免费播放| 欧美精品激情在线| 日韩一区免费| xxxxxx在线观看| 国产福利一区二区三区在线视频| 91狠狠综合久久久| 欧美在线高清视频| а√天堂中文在线资源bt在线| 欧洲美女免费图片一区| 天天躁日日躁狠狠躁欧美| 男人日女人bb视频| 99re在线视频这里只有精品| 日韩欧美视频在线免费观看| 日韩成人在线电影网| 欧美一卡二卡| 国产精品入口免费| 亚洲激精日韩激精欧美精品| 中文在线观看免费视频| 午夜精品久久久久久| 午夜小视频在线播放| 欧美在线一区二区视频| 久久99视频| 天堂一区在线观看| 亚洲欧洲av一区二区三区久久| 国产精品第一区| 国产日本亚洲| 黄色三级中文字幕| 99久久精品情趣| 久久久精品毛片| 色噜噜狠狠色综合网图区| 国产午夜亚洲精品一级在线| 黄色一级片国产| 97精品电影院| 中文字幕第三页| 九九热99久久久国产盗摄| 91亚洲无吗| 亚洲爆乳无码专区| 成人免费在线视频观看| 亚洲AV无码国产精品午夜字幕 | 亚洲黄色成人久久久| 精品一区二区三区在线播放视频| 免费国产羞羞网站美图| 亚洲国产精品va| 美女网站视频一区| 一本二本三本亚洲码| 成人v精品蜜桃久久一区| 亚洲av中文无码乱人伦在线视色| 日韩在线资源网| 精品国产乱子伦一区二区| 东京热加勒比无码少妇| 亚洲欧美经典视频| 图片区 小说区 区 亚洲五月| 国产精品久久在线观看| 午夜国产精品视频| 国产色视频一区二区三区qq号| 在线播放亚洲一区| 高端美女服务在线视频播放| 色就是色欧美| 成人avav影音| 中文字幕日本人妻久久久免费| 欧美日韩成人在线播放| 国产亚洲欧美日韩在线观看一区二区 | 欧美日韩综合久久|