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

时间:2013-11-07 07:10:18

标签: java performance java-ee bytearray fileinputstream

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

以下是代码:

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

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

1 个答案:

答案 0 :(得分:21)

  

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

但你没有档案。你的内存中有一些数据。所以FileInputStream是不合适的 - 没有文件可以从中读取。

如果可能,请改为使用ByteArrayInputStream

InputStream input = new ByteArrayInputStream(decodedHeaderFileZip);

尽可能使用InputStreamReader等表达您的API,而不是任何特定的实现 - 这使您可以灵活地使用您的实现。 (我的意思是尽可能使用方法参数和返回类型InputStream而不是FileInputStream - 这样调用者就不需要提供特定的类型。)

如果您绝对 创建FileInputStream,则需要先将数据写入文件。