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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring OXM-XStream流化对象

發(fā)布時間:2025/3/21 javascript 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring OXM-XStream流化对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  • 概述
  • 示例
  • 示例源碼

概述

XStream為java.io.ObjectInputStream和ObjectOutputStream提供了替代的實現,允許以對象流方式進行XML序列化或者反序列化操作。

這對于處理集合對象非常有用(List<User> users),在內存中只保留一個User對象流。很顯然,我們應該使用基于流而非DOM的XML解析器讀取XML,以提高性能。

創(chuàng)建一個輸出流,我們不得不提到HierarchicalStreamWriter. 它是一個接口,字面意思就是層級關系的輸出流。 XStream默認提供了幾個常用的實現類用于輸出,比如CompactWriter和PrettyPrintWriter。

示例

package com.xgj.oxm.xstream.quickDemo.streamObject;import java.io.BufferedReader; import java.io.FileReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.PrintWriter; import java.util.Date;import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.PrettyPrintWriter; import com.xgj.oxm.xstream.quickDemo.domain.LoginLog; import com.xgj.oxm.xstream.quickDemo.domain.User;public class ObjectStreamDemo {private static XStream xstream;static {xstream = new XStream();}/*** * * @Title: objectToXml* * @Description: JAVA對象轉化為XML* * @throws Exception* * @return: void*/public void objectToXml() throws Exception {// (1)實例化序列化對象User user = getUser();// (2)創(chuàng)建一個PrintWriter對象,用于輸出。PrintWriter pw = new PrintWriter("D:\\ObjectStreamSample.xml");// (3)創(chuàng)建一個HierarchicalStreamWriter的實現類來創(chuàng)建輸出PrettyPrintWriter ppw = new PrettyPrintWriter(pw);// (4)創(chuàng)建對象輸出流ObjectOutputStream out = xstream.createObjectOutputStream(ppw);out.writeObject(user);out.close();}/*** * * @Title: xmlToObject* * @Description: XML轉化為JAVA對象* * @return* @throws Exception* * @return: User*/public User xmlToObject() throws Exception {// (1)我們需要通過對象流進行輸入操作,需要FileReader和BufferedReaderFileReader fr = new FileReader("D:\\ObjectStreamSample.xml");BufferedReader br = new BufferedReader(fr);//(2)創(chuàng)建對象輸入流ObjectInputStream input = xstream.createObjectInputStream(br);// (3)創(chuàng)建對象,通過ObjectInputStream中的readObject()方法將對象從XML文件中讀取出來。User user = (User) input.readObject();return user;}/*** * * @Title: getUser* * @Description: 初始化轉換對象* * @return* * @return: User*/public static User getUser() {LoginLog log1 = new LoginLog();LoginLog log2 = new LoginLog();log1.setIp("192.168.1.91");log1.setLoginDate(new Date());log2.setIp("192.168.1.92");log2.setLoginDate(new Date());User user = new User();user.setId(1);user.setUserName("xstream");user.addLoginLog(log1);user.addLoginLog(log2);return user;}public static void main(String[] args) throws Exception {ObjectStreamDemo converter = new ObjectStreamDemo();converter.objectToXml();User u = converter.xmlToObject();for (LoginLog log : u.getLogs()) {if (log != null) {System.out.println("訪問IP: " + log.getIp());System.out.println("訪問時間: " + log.getLoginDate());}}}}

示例源碼

代碼已托管到Github—> https://github.com/yangshangwei/SpringMaster

《新程序員》:云原生和全面數字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Spring OXM-XStream流化对象的全部內容,希望文章能夠幫你解決所遇到的問題。

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