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