ファイルを取得して圧縮し、データベースに保存するコードがあります
このように見えます
// 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 );
DBに保存するfisオブジェクト
しかし、ファイルシステムを完全に避け、file.zipを作成したくありません。ZipOutputStream を FileInputStream に直接変換する必要があると思いますが、それを行う方法が見つかりませんでした。
これを達成する簡単な方法はありますか?
- ファイルを抽出するときにも同じ問題があります。それを読み取るには、file.zipとfile.hexの2つの異なる一時ファイルを作成する必要があります