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