Image Object -> FileInputStream

torbenwuerth

Grünschnabel
Hallo,

ich möchte ein Image Object in einer Datenbank speichern.

Meine bisherige Lösung:
//SQL Vorbereitung
st = (PreparedStatement) conn.prepareStatement("insert into file (file_name,file) values ('name',?);");

//Bild holen und speichern (blöd!)

Image im = (BufferedImage)display.getImage();
ImageIO.write(im, "jpg", new File("test"));

//Bild wieder holen

File f=new File("test")
FileInputStream in = new FileInputStream(f);
st.setBinaryStream(1,in,(int)f.length());

//In Datenbank
st.execute();
out.close() ;

Wie kann ich das Zwischenspeichern sparen?


Vielen Dank für eine Antwort!

Torben
 
Zuletzt bearbeitet:
Hallo,

schau mal hier:
Java:
/**
 * 
 */
package de.tutorials;

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;

import javax.imageio.ImageIO;

/**
 * @author Tom
 *
 */
public class ImageIOExample {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception{
        BufferedImage image = null;
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        ImageIO.write(image, "jpeg", byteArrayOutputStream);
        byte[] bytes = byteArrayOutputStream.toByteArray();
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
        //preparedStatement.setBinaryStream(1,byteArrayInputStream,bytes.length);
        
    }

}

Gruß Tom
 
Hallo Tom,

das klappt wunderbar. Herzlichen Dank!

Kannst du mir auch sagen, wie ich das bei einem Applet lösen kann? Meine Klasse ist sowohl als Application als auch als Applet ausführbar. Starte ich eine Application, ist alles bestens. Als Applet passiert nichts.
Die Klasse liegt auf dem gleichen Rechner wie die Datenbank.

Soll ich für das neue Problem einen neuen Beitrag schreiben?

ca. 1 Stunde später :-):
Habe nun noch deine alten Beiträge zu dem Thema gelesen. Ich versuche das mal damit zu lösen!
Nochmals vielen Dank!

Torben
 
Zuletzt bearbeitet:
Zurück