InputStream zu FileInputStream umwandeln

cyb3rdragon

Mitglied
Hi zusammen,

ich möchte einen InputStream in einen FileInputStream umwandeln. Grund dafür ist das ich in einer Datenbank Bilder hab die auf einen FTP-Server sollen. Das Problem ist das ich aus der Datenbank ein BufferedImage bzw. einen InputStream bekomme und mein FTP-client benötigt einen FileInputStream. Ich möchte die Datei nicht erst auf der Festplatte zwischenspeichern.

Hier die Methode mit der ich bisher die Bilder geladen hab. Die Verbindung zur Datenbank wurde vorher hergestellt.
Code:
public BufferedImage[] loadPic (String querry, int pos) throws SQLException
	{
		Vector vImg = new Vector();
		ResultSet rs = getSQL(querry);
		int i = 0;
		while (rs.next())
		{
			try
			{
				InputStream is = rs.getBinaryStream(pos);
				vImg.add(ImageIO.read(is));
				is.close();
			} catch (SQLException e)
			{
				e.printStackTrace();
			} catch (IOException e)
			{
				e.printStackTrace();
			}
		}
		return (BufferedImage[]) (vImg.toArray(new BufferedImage[vImg.size()]));
	}
Hier wird zwar ein Array mit bufferedImages zurück gegeben aber es ist ja kein Problem ne 2. Methode zu schreiben um das Problem zu lösen.

Und hier der Teil mit dem FTP. Auch hier wurde die Verbindung zum Server schon hergestellt.
Code:
InputStream input;

input = new FileInputStream(local);
	                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
ftp.storeFile(remote, input);

input.close();
 
Hallo,

es wird dir da nichts anderes übrig bleiben, als die Daten als Datei zwischen zu speichern.

MFG

Sascha
 
Das is schlecht. das will ich nicht so gern.

Oder gibts vllt sowas wie ein "virtuelles" File-Objekt das nicht auf die Festplatte schreibt sondern die Daten behält?
 
Moin!
Nach dem jar Namen nutzt du den Apache Commons net FTPClient.
Und dieser benötigt keinen FileInputStream sondern einen einfachen InputStream
Code:
storeFile(String remote,           InputStream local)
http://commons.apache.org/net/api/org/apache/commons/net/ftp/FTPClient.html

Und den InputStream hast du doch in deiner loadPic Methode bekommen?
Musst aber wahrscheinlich noch sagen, das es sich um ein Bilddatenstrom handelt (setFileType())

*grüssle*
MeinerEiner
 
man bin ich schugge. Danke das funktioniert.
Ich hab aber auch nach allem gesucht und ausprobiert was mir eingefallen is aber das muss ich wohl übersehn ham. :-(
Ich sollte die dokus sorgfältiger lesen.
 
Zurück