0

この場合、Base64 でエンコードされた zlib 圧縮データの要素を含む XML ファイルを SAX で解析しています。データをデコードして解凍する方法を知っています。問題は、一度にすべてをメモリ内で実行したくないということです。私はそれをチャンクで行い、オンザフライでデコード/解凍したい-チャンクごとに。

私のアプローチはこれでした...

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まだバグがありますが、そこまで来ています。このアプローチが理にかなっているのか、それともここで車輪を再発明しているのか疑問に思っています。これについてもっと簡単な方法はありますか?

4

1 に答える 1

0

はい、 を使用してFilterInputStreamください。必要なのはそれだけです。

于 2013-08-01T22:08:06.007 に答える