在这种情况下,我正在 SAX 解析一个 XML 文件,该文件包含一个 Base64 编码的 zlib 压缩数据元素。我知道如何解码和解压缩数据。问题是我不想一次在内存中完成所有操作。我想分块进行,即时解码/解压缩——逐块。
我的方法是这样...
public void characters(char ch[], int start, int length) throws SAXException {
// make a new string from ch
// decode -- I think I need to make sure the String length is a multiple of 4?
// create ByteArrayInputStream from the String
}
我有一个扩展类,FilterInputStream
它保存多个ByteArrayInputStreams
,直到它们准备好被阅读。它仍然有错误,但它正在到达那里。我想知道这种方法是否有意义,或者我是否在这里重新发明轮子。有没有更简单的方法来解决这个问题?