1
我有一个代码,需要一个文件,压缩它,并将其存储在数据库中转换ZipOutputStream来的FileInputStream
看起来像这样
// STEP 1 - Create a ZIP file
byte[] buffer = new byte[1024];// 18024
ZipOutputStream outZip = new ZipOutputStream(new FileOutputStream("file.zip"));
outZip.setLevel(Deflater.DEFAULT_COMPRESSION);
FileInputStream in = new FileInputStream(c:\file.hex);
outZip.putNextEntry(new ZipEntry("file.hex"));
int len;
while ((len = in.read(buffer)) > 0)
outZip.write(buffer, 0, len);
outZip.closeEntry();
in.close();
outZip.close();
// STEP 2 - Insert zip file to DB
file = new File("file.zip");
FileInputStream fis = new FileInputStream(file);
FIS的对象我存储在数据库
但我想完全避免文件系统,而不是创建file.zip。 我想我需要直接将ZipOutputStream转换为FileInputStream ,但我找不到办法做到这一点。
有没有简单的方法来完成这个?
- 我也有同样的问题,当我解压文件,以读取它,我必须创建2个不同的临时文件 - file.zip和file.hex
我很抱歉,但我似乎在这里 – yaniv 2013-05-09 14:46:32
丢失的财产以后,你可以请添加代码的字节数组转换回文件。我似乎也有这个问题:-),或者甚至更好的FileInputStream,这样我就可以直接读取它,非常感谢 – yaniv 2013-05-09 15:18:17
@yaniv决定你的想法。你说你的目标是'完全避免文件系统并且不创建文件'? – EJP 2013-05-10 01:32:18