7

私はzipファイルを持っていて、それをデコードした後、バイト配列を取得し、そのbyte []オブジェクトでFileInputStreamオブジェクトを作成したいと考えています。FileInputStreamでデータコンテンツを渡す代わりに、ファイルを作成したくありません。方法はありますか?

以下はコードです:

byte[] decodedHeaderFileZip = decodeHeaderZipFile(headerExportFile);
FileInputStream fileInputStream = new FileInputStream(decodedHeaderZipFileString);

編集: FileInputStream を使用して ZipInputStream オブジェクトを構築したかったのです。

4

1 に答える 1

33

私はzipファイルを持っていて、それをデコードした後、バイト配列を取得し、そのbyte []オブジェクトでFileInputStreamオブジェクトを作成したいと考えています。

しかし、ファイルがありません。メモリにいくつかのデータがあります。したがって、 aFileInputStreamは不適切です。読み取るファイルがありません。

可能であれば、ByteArrayInputStream代わりにa を使用します。

InputStream input = new ByteArrayInputStream(decodedHeaderFileZip);

可能であれば、特定の実装ではなくInputStream、などの観点から API を表現してください。これにより、使用する実装に柔軟に対応できます。Reader(私が言いたいのは、呼び出し元が特定の型を提供する必要がないように、可能な場合はメソッドのパラメーターを作成し、代わりに型を返すということです。InputStream)FileInputStream

絶対を作成するFileInputStream必要がある場合は、最初にデータをファイルに書き込む必要があります。

于 2013-11-07T07:12:04.350 に答える