の作成は省略したいと思いFile
ます。マイDataHandler
オブジェクトには、1つのエントリを含むzipファイルが含まれています。InputStream
zip形式のコンテンツを読み取ることができるものを適切に取得する必要があります。
実際、私の「フロー」は次のとおりです。DataHandler-> File-> ZipFile-> first ZipEntry.getInputStream()。
File/ZipFile
オブジェクトを作成しない方法はありますか?
はい、代わりにZipInputStreamを使用できます。
編集:それはあなたのzipコンテンツがあなたの中にどのように保存されているかに依存しますDataHandler
。
バイト配列に格納されている場合...
byte[] zippedContent = dataHandler.getContent();
InputStream in = new ByteArrayInputStream(zippedContent);
ZipInputStream zipIn = new ZipInputStream(in)
ZipEntry zipEntry = zipIn.getNextEntry();
それがへのアクセスを提供する場合InputStream
...
ZipInputStream zipIn = new ZipInputStream(dataHandler.getInputStream());
ZipEntry zipEntry = zipIn.getNextEntry();
これで、他のInputStreamと同様に、拡張されたコンテンツをZipInputStreamから読み取ることができます。
あなたはおそらく探していますZipInputStream
解決策は次のとおりです。
DataHandler dh = ...
ZipInputStream zis = new ZipInputStream(dh.getInputStream());
ZipEntry entry = zis.getNextEntry();
...その後、zis
現在、最初のzipエントリの開始時に設定されています。
ヒントをくれた@aetheriaと@Janozに感謝しZipInputStream
ます。