如何使用字节数组作为参数构建FileInputStream对象

Rau*_*auf 4 java performance bytearray fileinputstream java-ee

我有一个zip文件,解码后我得到一个字节数组现在我想用byte []对象创建一个FileInputStream对象.我不想创建文件而是传递数据内容做FileInputStream.有什么办法吗?

以下是代码:

byte[] decodedHeaderFileZip = decodeHeaderZipFile(headerExportFile);
FileInputStream fileInputStream = new FileInputStream(decodedHeaderZipFileString);
Run Code Online (Sandbox Code Playgroud)

编辑:我想用FileInputStream构建一个ZipInputStream对象.

Jon*_*eet 21

我有一个zip文件,解码后我得到一个字节数组现在我想用byte []对象创建一个FileInputStream对象.

但是你没有文件.你的内存中有一些数据.所以a FileInputStream是不合适的 - 没有文件可供阅读.

如果可能,请使用ByteArrayInputStream:

InputStream input = new ByteArrayInputStream(decodedHeaderFileZip);
Run Code Online (Sandbox Code Playgroud)

如果可能的话,表达方面的API InputStream,Reader等等,而不是任何具体的实现-它允许你在使用哪个实现灵活.(我的意思是,尽可能使用方法参数和返回类型InputStream而不是FileInputStream- 以便调用者不需要提供特定类型.)

如果您必须创建一个FileInputStream,则需要先将数据写入文件.