Originariamente inviato da andbin
Potresti creare un Blob, da cui puoi ottenere un OutputStream e scrivere su quello invece di un FileOutputStream.
Penso che sia proprio un'ottima idea.... ci sto provando a sistemarlo.... ma... ho un problemino! Io setto il blob così:
codice:
// il vero codice non e' questo.... queste sono solo le query!!!
INSERT INTO miaTab (id, nome_file, file) VALUES (1,"nome",oracle.sql.BLOB.getEmptyBLOB())
// Recupero il record appena inserito nella tabella :
ResultSet rs = "SELECT file FROM miaTab where ID = 1";
// Creo il file zip utilizzando new ZipOutputStream(new BufferedOutputStream(new ByteArrayOutputStream() ));
ZipOutputStream zipFile= creaZip()
// Inserisco il nuovo valore per il campo blob:
Blob zipBlob =(Blob) rs.getBlob(1);
OutputStream outS = zipBlob.setBinaryStream(0);
BufferedOutputStream boutS = new BufferedOutputStream(outS);
byte [] blob = zipFile; // DA ERRORE... perche' non e' un byte[]
boutS.write(blob);
boutS.flush();
boutS.close();
E come commentato nel codice... non riesco a trasformare lo ZipOutputStream in byte []
La soluzione sembra vicina.... ma ancora non abbastanza!