日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

XML格式对象序列化(2)

發布時間:2025/4/5 asp.net 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 XML格式对象序列化(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??

XStreamJava.BeanXML工具的比較

?

???????XStream主要作用是將序列化的對象轉化為一個XML文件或將XML文件解析為一個對象。當然并非只有它可以做到,很多其它工具一樣可以,在Java中存在這樣兩個類XMLDecoderXMLEncoder,它們是在Java.Bean包下的,它們的作用是將JavaBean轉化為XML或將XML文件轉化為一個Java Bean

???????XMLDecoder是通過一個輸入流將對象從輸入流中取出并轉化為一個實例的方法。它所需要的就是一個輸入流及一個轉化過程。

?

???????XMLDecoder的實例:

?

???????String fileStr=”xstream.xml”;//XML文件,在本目錄下,延用上次使用文件。

???????ObjectInputStream in=new ObjectInputStream(new FileInputStream(fileStr));//創建一個ObjectInputStream用于輸入。

???????XMLDecoder xmld=new XMLDecoder(in);//創建一個XMLDecoder對象。

???????延用前面所使用PrintUnit這個Bean

???????PrintUnit pu=(PrintUnit)xmld.readObject();//通過XMLDecoder中的readObject方法獲得PrintUnit對象。

如果獲取到了這個對象那么pu中將有它的值a=A11,b=B22,c=C33。整個過程最好放try

…catch中去,能夠捕獲一些如:文件不存在等異常。

???????從操作方式上看XMLDecoder似乎不比XStream差多少,同樣是可以通過ObjectInputStream獲取XML文件中的對象。它們的差異就是解析的方式不同,XMLDecoder是使用Java自帶的XML解析方式,而XStream則是可以自定義的,它可以使用多中方式進行解析。這些是我個人所發現的一些不同點。

?

???????XMLEncoder是通過一個輸出流將對象序列化并輸出為XML文件。它所需要的是一個輸出流及一個輸出方式。

?

???????XMLEncoder的實例:

?

???????String fileStr=”xstream.xml”;//定義一個輸入的目標文件。

???????ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream(fileStr));//創建一個對象輸出流。

???????XMLEncoder xmle=new XMLEncoder(out);//創建一個XMLEncoder對象。

???????延用前面所使用PrintUnit這個Bean

//創建并初始化PrintUnit對象。

PrintUnit pu=new PrintUnit();

pu.setA(“AAA”);

pu.setB(“BBB”);

pu.setC(“CCC”);

?

???????xmle.writeObject(pu);//使用XMLEncodewriteObject方法輸出pu

???????xmle.flush();//刷新

???????xmle.close();//關閉輸出流

?

???????從上面的代碼不難看出,使用XMLEncode方式將對象序列化并輸出也是很方便的,簡單調用writeObject方法能將普通Bean輸出為XML文件。

??????

???????XML文件的內容:

?

�_?<?xml?version="1.0"?encoding="UTF-8"?>

<java?version="1.5.0"?class="java.beans.XMLDecoder">

?<object?class="test.PrintUnit">

??<void?property="a">

???<string>AAA</string>

??</void>

??<void?property="b">

???<string>BBB</string>

??</void>

??<void?property="c">

???<string>CCC</string>

??</void>

?</object>

w???</java>

?

???????不知道是我哪里沒有處理,還是實際并不是像我想象的哪么簡單,使用XMLEncoder所輸出的XML文件中有一定的問題,雖然它很詳細,比起XStream所生成的更多,包括了XMLJava的版本看上去更像是個完整的XML文件,不過再細看它們兩生成的XML格式內容,完全不同,這個我想就是它們最大的區別。這讓我想到了很多內容:工作方式,解析器,轉換方式等。大家有沒發現在開始和結束都存在一些亂碼數據,難道在XMLEncoder輸出過程中或數據轉換中內容已經存在“臟”數據了?還是我所使用的輸出方式存在問題?哎一個又一個問題出現了。我想我需要再進一步的研究和學習才能得到答案。

???????不過盡管有這個那個的問題,使用Java本身自帶的XML工具還是一樣很實用的,讀取和輸出一樣可用,操作也很靈活。因此我覺得在某些場合使用特定的工具可能會更好,利用XMLEncoderXMLDecoder同樣可以解決一些問題。

?

?

XStream 有三個突出的優點:

  • XStream 不關心序列化/逆序列化的類的字段的可見性。
  • 序列化/逆序列化類的字段不需要 getter 和 setter 方法。
  • 序列化/逆序列化的類不需要有默認構造函數。
  • 不需要修改類,使用 XStream 就能直接序列化/逆序列化任何第三方類。

    ?

    轉載于:https://blog.51cto.com/jianshusoft/760678

    總結

    以上是生活随笔為你收集整理的XML格式对象序列化(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲成人h| 久久精品国产视频 | 丰满少妇被猛烈进入无码 | 青青操免费 | 毛片aaaa| 97射射| 国产精品3 | 国产精品自拍视频一区 | 999久久久久 | 俄罗斯毛片 | 成人av亚洲 | 欧美一区二区视频在线观看 | 国内成人精品视频 | 欧美日韩免费观看视频 | 九色国产视频 | 国产中文在线视频 | 五月天国产精品 | 日日好av| 日韩六十路 | 精品九九 | 大度亲吻原声视频在线观看 | 日韩精品xxx | 91伦理| 欧美黄在线观看 | 国产自偷自拍 | 久草福利资源 | 99免费在线 | 国产精品三级电影 | 可以免费看的av毛片 | 青草青草视频 | 日本xxxx高潮少妇 | 麻豆蜜桃wwww精品无码 | 毛片在线网站 | 视频三区在线 | 毛茸茸多毛bbb毛多视频 | 国产午夜一区二区三区 | 亚色影库 | 国产精品成人午夜视频 | 日本人の夫妇交换 | 精品国产va久久久久久久 | www.com捏胸挤出奶 | 醉酒壮男gay强迫野外xx | 香蕉视频日本 | 开心激情婷婷 | 亚洲欧美另类日本 | 天堂俺去俺来也www久久婷婷 | 国产网站91| 麻豆成人久久精品一区二区三区 | 日日夜夜2017 | 国产成人在线观看免费 | 啪视频在线观看 | 91在线最新 | 韩日激情视频 | 九九爱爱视频 | av大帝在线观看 | 中文字幕+乱码+中文乱码www | 丰满人妻一区二区三区免费视频棣 | 韩国女主播裸体摇奶 | 黄色精品一区 | 国产淫视频 | 9191在线视频 | 欧美一卡二卡在线观看 | 一级片小视频 | 被灌满精子的波多野结衣 | 欧美另类在线播放 | 可以免费观看av | 九九碰| 免费国产91 | 色中色综合 | 四虎影视成人永久免费观看亚洲欧美 | 亚洲精品男人的天堂 | 一极毛片 | 337p日本欧洲亚洲大胆张筱雨 | 国产成人在线视频 | 婷婷丁香五 | 伊人成人在线观看 | 国产无套精品一区二区三区 | 色撸撸在线观看 | 日本中文字幕在线看 | 久久久国产一区二区三区 | 污漫在线观看 | www.色人阁.com| 岛国av免费观看 | 亚洲精品9 | 亚洲aⅴ在线 | 亚洲天堂高清 | 美女黄色小视频 | 欧美另类色图 | 男人天堂国产 | 日韩精品人妻一区二区中文字幕 | 久久久久久国产精品免费 | 日韩精品一二三四 | 操操影视 | 成人午夜电影网站 | 青青草综合 | 麻豆系列| 色窝窝综合色窝窝久久 | 精品欧美一区二区久久久 | 污视频网站在线播放 |