【发布时间】:2011-07-21 18:49:02
【问题描述】:
我正在编写一个简单的程序,它从一个对象中检索 XML 数据,并根据用户标准动态地解析它。由于可用的格式,我无法从对象中获取 XML 数据。
包含 XML 的对象以 zipFile 的 byteArray 形式返回数据,如下所示。
MyObject data = getData();
byte[] byteArray = data.getPayload();
//上面返回一个zipFile的byteArray
我检查的方法是将 byteArray 写入字符串
String str = new String(byteArray);
//上面返回一个字符串,里面有奇怪的字符。
然后我将数据写入文件。
FileOutputStream fos = new FileOutputStream("new.txt");
fos.write(byteArray);
我将 new.txt 重命名为 new.zip。当我使用 WinRAR 打开它时,弹出了 XML。
我的问题是,我不知道如何在 Java 中使用流进行这种转换,而不是先将数据写入 zip 文件,然后再读取它。将数据写入磁盘会使软件速度过慢。 您能给我的任何想法/代码 sn-ps/信息将不胜感激!谢谢 另外,如果您需要我提供更好的解释,我很乐意详细说明。
作为另一种选择,我想知道 XMLReader 是否可以使用 ZipInputStream 作为 InputSource。
ByteArrayInputStream bis = new ByteArrayInputStream(byteArray);
ZipInputStream zis = new ZipInputStream(bis);
InputSource inputSource = new InputSource(zis);
【问题讨论】:
标签: java xml bytearray xmlreader zipinputstream