我有一个 zip 文件,解码后我得到一个字节数组,现在我想用那个 byte[] 对象创建一个 FileInputStream 对象。我不想创建文件而是将数据内容传递给 FileInputStream。 有什么办法吗?
代码如下:
byte[] decodedHeaderFileZip = decodeHeaderZipFile(headerExportFile);
FileInputStream fileInputStream = new FileInputStream(decodedHeaderZipFileString);
编辑: 我想用 FileInputStream 构建一个 ZipInputStream 对象。
最佳答案
I have a zip file and after decoding it I get a byte array now I want to create a FileInputStream object with that byte[] object.
但是你没有文件。你有一些数据在内存中。所以 FileInputStream
是不合适的 - 没有可供它读取的文件。
如果可能,请改用 ByteArrayInputStream
:
InputStream input = new ByteArrayInputStream(decodedHeaderFileZip);
在可能的情况下,用 InputStream
、Reader
等而不是任何特定的实现方式来表达您的 API - 这使您可以灵活地使用哪种实现方式。 (我的意思是,在可能的情况下,将方法参数和返回类型设置为 InputStream
而不是 FileInputStream
- 这样调用方就不需要提供特定类型。)
如果您确实必须创建FileInputStream
,则需要先将数据写入文件。
关于java - 如何使用字节数组作为参数构建 FileInputStream 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19829955/