/**
*
*/
package com.automic.commu.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.util.ArrayList;
import com.automic.commu.bo.Data;
import com.automic.commu.bo.DataPackage;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
/**
* @author hxb
*
*/
public class OperatorXml {
private XStream xstream;
public OperatorXml(){
if(xstream == null){
xstream = new XStream(new DomDriver());
}
}
/**
* @return 生成xml
*/
public void createXml(){
String xmlName = System.currentTimeMillis() + ".xml";
/********/
DataPackage dp = new DataPackage();
ArrayList<Data> das = new ArrayList<Data>(0);
Data d1 = new Data();
Data d2 = new Data();
d1.setGprsId("12345678991");
d1.setMeterNo("我说");
d1.setDateTime("2009-08-14 12:00:00");
d2.setGprsId("12345678992");
d2.setMeterNo("1100008892");
d2.setDateTime("2009-09-15 12:00:00");
das.add(d1);
das.add(d2);
dp.setDatas(das);
xstream.alias(DataPackage.DATAPACKAGE, DataPackage.class);
xstream.alias(DataPackage.DATA, Data.class);
try {
FileOutputStream fos = new FileOutputStream(new File(DataPackage.XMLSAVEDIR + xmlName));
OutputStreamWriter osr = new OutputStreamWriter(fos,Charset.forName("GBK"));
xstream.toXML(dp, osr);
System.out.println("文件生成完毕!!");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*******/
}
/**
* @param fis 读取xml
*/
@SuppressWarnings("deprecation")
public void readXml(){
File f = new File(DataPackage.XMLSAVEDIR);
if(f != null){
File[] fs = f.listFiles();
for(int i = 0;fs != null && i < fs.length;i++){
File ftemp = fs[i];
System.out.println(ftemp.getName());
xstream.alias(DataPackage.DATAPACKAGE, DataPackage.class);
xstream.alias(DataPackage.DATA, Data.class);
try {
DataPackage dp = (DataPackage)xstream.fromXML(new InputStreamReader(new FileInputStream(ftemp),Charset.forName("GBK")));
ArrayList<Data> das = dp.getDatas();
for(int k = 0;das != null && k < das.size();k++){
Data da = das.get(k);
System.out.println(da.getGprsId() + "-" + da.getMeterNo() + "-" + da.getDateTime());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/**
* @param args0
*/
public static void main(String[] args0){
OperatorXml tx = new OperatorXml();
// tx.createXml();
tx.readXml();
}
/**
* @author hxb
*
*/
}
/**
*
*/
package com.automic.commu.bo;
import java.util.ArrayList;
/**
* @author hxb
*
*/
public class DataPackage {
public final static String DATAPACKAGE = "dataPackage";
public final static String DATA = "data";
public final static String XMLSAVEDIR = ".\\xml\\";
private ArrayList<Data> datas;
public ArrayList<Data> getDatas() {
return datas;
}
public void setDatas(ArrayList<Data> datas) {
this.datas = datas;
}
}
/**
*
*/
package com.automic.commu.bo;
/**
* @author hxb
*
*/
public class Data {
private String gprsId;
private String meterNo;
private String dateTime;
public String getDateTime() {
return dateTime;
}
public void setDateTime(String dateTime) {
this.dateTime = dateTime;
}
public String getGprsId() {
return gprsId;
}
public void setGprsId(String gprsId) {
this.gprsId = gprsId;
}
public String getMeterNo() {
return meterNo;
}
public void setMeterNo(String meterNo) {
this.meterNo = meterNo;
}
}
分享到:
相关推荐
通过本篇内容的学习,我们了解了XStream的基本原理以及如何使用它来读写XML文件。XStream不仅简化了XML与Java对象之间的转换过程,还提高了开发效率。在实际项目中,合理利用XStream可以有效地管理复杂的数据结构。
XStream是一个强大的库,它提供了将Java对象转换为XML,以及将XML转换回等效Java对象的功能。在这个场景中,"使用XStream多集合生成xml"是一个关键的技术点,它涉及到如何将多个集合类的对象转换成XML文档。以下是对...
在配置文件中,复杂的配置对象可以用XML表示,XStream则负责读写这些配置。 总之,XStream是一个强大且灵活的工具,对于处理Java对象与XML之间的转换,它提供了简洁、高效的解决方案。无论你是新手还是经验丰富的...
本篇将详细介绍XStream如何处理XML与Java对象的相互转换,以及如何处理List、Map等集合类型的数据。 首先,XStream是一个强大的库,它由Pete Gyford开发,用于将Java对象序列化为XML,同时也能将XML反序列化为Java...
最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar ...
例如,如果`Person`类包含一个`List<String>`的地址列表,XStream会将每个元素转换为一个单独的XML元素。 ```java @XStreamAlias("person") class Person { private String firstName; private String lastName; ...
5. **集合处理**:XStream能够自动处理Java集合(如List、Set)和数组,将它们转换成XML的元素列表。 6. **命名空间支持**:XStream可以处理XML的命名空间,方便在复杂的XML文档结构中工作。 7. **安全性**:...
XStream 反序列化漏洞(CVE-2020-26258 & 26259),修复jar包 xstream-1.4.15.jar Xstream 是 Java 类库,用来将对象序列化成 XML (JSON) 或反序列化为对象。XStream 是一款开源软件,允许在 BSD 许可证的许可下分发...
xstream最新版jar包
XStream 能够将复杂的 Java 对象结构转换成易于读写的 XML 格式,同时也能将 XML 文档还原为对应的 Java 对象。这在数据持久化、网络通信和配置存储等领域有着广泛的应用。XStream 通过提供简单的 API 和自定义转换...
xStream可以自动处理集合(List、Set等)和数组,将其转换为XML的元素列表。 **总结** xStream简化了Java对象与XML之间的转换,使得在处理XML数据时,开发者无需关注底层的XML构造细节。在Web Service接口对接时,...
6. **流式处理**:XStream支持XML的流式读写,适合处理大量数据。 `xstream-1.2.2.jar`是XStream的主库,包含了所有核心功能。这个版本是1.2.2,虽然不是最新的,但它是经过测试且稳定的版本。它提供了序列化和反...
XStream 是一个流行的 Java 库,用于将对象序列化为 XML 和从 XML 反序列化回对象。这个库广泛应用于各种 Java 应用程序,尤其是那些需要在网络间传输或存储对象数据的情况。在标题提到的 "xstream1.4.15.JAR" 文件...
**XStream 概述** XStream 是一个 Java 库,用于将对象序列化为 XML,以及从 XML 反序列化回对象。它提供了一种简单而直观的方式来处理 XML 数据,使得 XML 文档与 Java 对象之间的转换变得轻而易举。这个“xStream...
xstream xstream-1.4.5.jar
- **集合**: 支持 `List`, `Set`, `Map` 等集合类型,包括泛型版本。 - **自定义对象**: 只需定义好 Java 类,XStream 就能自动处理其属性和嵌套对象。 ### 4. **映射 XML 和 Java 类** - **字段映射(Field ...
《XStream 1.3.1:Java对象到XML的高效转换工具》 XStream是一款强大的Java库,它能够将Java对象序列化为XML,并能从XML反序列化回Java对象。这个“xstream-1.3.1.zip”文件包含了一个名为“xstream-1.3.1.jar”的...
xstream-1.4.19.jar
《XStream解析依赖包详解》 在Java开发中,数据序列化是一个不可或缺的环节,它使得对象的状态可以被保存和恢复。XStream是一款强大的Java库,用于将Java对象转换为XML,反之亦然,极大地简化了序列化和反序列化的...
XStream是一款强大的Java库,用于将Java对象序列化为XML,反之亦然。这个库的主要优点在于其简单易用的API和对复杂对象图的处理能力。在标题中提到的"Xstream相关的jar包",是指为了使用XStream库,需要引入的依赖...