Blob to Jpg

Tyrall

Grünschnabel
Hallo,

ich möchte gerne aus einer DB Blobs(darin sind Bilder abgelegt) und diese dann jedes einzeln ein einem Verzeichnis abspeichern. Funktioniert auch, nur nicht ganz korrekt. vielleicht kann mir jemand sagen wo ich meinen Fehler habe.

FileOutputStream fout = new FileOutputStream("c:/test/example"+z+".bmp");
byte puffer[] = new byte[50000];
int anzahl;
// Auslesen der Bilddaten und in Datei schreiben
InputStream in = rs.getBinaryStream(71);
while((anzahl = in.read(puffer)) != -1) {
fout.write(puffer);

}
// Schließen der Streams
fout.close();
in.close();


danke schon mal im voraus
 
danke für die schnelle Antwort



@thomas
Hat funktioniert. THX

@schnuffie
sry hehe.
Also das Problem das ich hatte war, das einige Bilder zwar angezeigt wurden viele aber auch nicht, einige waren plötzlich größer als die orginal Datei. Also z.B. von 50kb auf 2MB.

Und noch ne allgemeine Verständins Frage. Die Bilder die ich aus dem BLOB lese sind BMP files.Die Bilder sollen später für eine Webanwendung zur Verfügung stehn. Die BMP werden im Mozilla Firefox dargestellt aber in meiner Windowsbild Anzeige werden sie mit meiner alten lösung nur teilweise angezeigt und mit der neuen garnicht.
Sollte man das was bestimmtes beachten ?
Ich hoffe meine Frage ist halbwegs verständlich...
 
Zuletzt bearbeitet:
Bis auf die Anmerkung von Thomas sieht Dein Codeschnipsel garnicht so verkehrt aus.

Also wie Du von 50kB auf 2MB kommst weiß ich auch nicht. Jedoch liest Du jeweils 50k in den Buffer, den Du allerdings auch genau so, wie von Thomas angegeben, wieder auslesen solltest, sonst hat Deine Datei immer die Größe eines Vielfaches dieser 50000. Vor dem "close()" ein "fout.flush()"

Wenn allerdings Dein "z" nicht automatisch wie die Result-Zeile geändert wird, könnte ich mir schon vorstellen, das das falsche Result in der Datei landen könnte.
 
Zurück