2

の作成は省略したいと思いFileます。マイDataHandlerオブジェクトには、1つのエントリを含むzipファイルが含まれています。InputStreamzip形式のコンテンツを読み取ることができるものを適切に取得する必要があります。

実際、私の「フロー」は次のとおりです。DataHandler-> File-> ZipFile-> first ZipEntry.getInputStream()。

File/ZipFileオブジェクトを作成しない方法はありますか?

4

3 に答える 3

2

はい、代わりに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から読み取ることができます。

于 2012-11-12T13:21:43.230 に答える
0

あなたはおそらく探していますZipInputStream

于 2012-11-12T13:25:14.917 に答える
0

解決策は次のとおりです。

DataHandler dh = ... 
ZipInputStream zis = new ZipInputStream(dh.getInputStream());
ZipEntry entry = zis.getNextEntry();

...その後、zis現在、最初のzipエントリの開始時に設定されています。

ヒントをくれた@aetheriaと@Janozに感謝しZipInputStreamます。

于 2012-11-12T14:37:21.013 に答える