# MP3 in DB als Blob, wieder auslesen und als MP3 speichern???



## cykan (5. Jun 2009)

Hi Leute!
Mein Threadname sagt eigentlich schon alles was ich brauche. 

Also mein Vorhaben: Ich speichere eine MP3 in meiner SQL Datenbank (kein Java, mySQL-Admin). Nun soll mein Prog diese MP3 aus der DB auslesen und als File speichern. Mein Prob ist, das zwar etwas gespeichert wird, diese Datei allerdings zu klein ist (IMMER 39KB groß) und jegliche Attribute der MP3 fehlen (Interpret, Albumtitel etc.-> für mich unwichtig, aber für das Prob vllt nicht).

So dann hier mal mein Code:


```
public File toAudio(Blob blob_audioFile) throws SQLException, IOException {
		File audioFile = new File("sound.mp3");
		InputStream is = blob_audioFile.getBinaryStream();
		FileOutputStream file = new FileOutputStream(audioFile);

		int bytes = 0;
		while ((bytes = is.read()) != -1) {
			file.write(bytes);
		}
		file.close();
		return audioFile;
	}
```

Ist das Vorgehen eigentlich richtig? IMHO wird die mp3 als blob gespeichert, wenn ich dieses blob dann auslese dürften eigentlich keine Daten fehlen und es als mp3 abzuspeichern müsste doch ausreichen. Oder müsste ich es nochmals encodieren?

Vielen Dank nochmal! 

LG
Cykan

PS: Hoffe bin hier doch richtig unter Datenbanken. ^^

Zusatz: Was mir grad aufgefallen ist, egal was ich aus der DB hole (vid, audio...) alle blobs sind nach dem ".getBinaryStream();" nur 39kb groß. Liegt da der Fehler?


----------



## ice-breaker (5. Jun 2009)

Wurden für sowas nicht Dateisysteme erfunden?


----------



## cykan (5. Jun 2009)

Weiß jetzt nicht genau was du meinst. Kenn halt nur die Möglichkeit die mp3z als Blob in der DB zu speichern. Bekomme sie dann auch nur als Blob raus. Nun fehlt mir der Weg sie zurück in das mp3 Format zu bringen.

Vllt ne Idee? Thx! 

Greetz
Cykan


----------



## maki (5. Jun 2009)

Bist du dir denn sicher dass die Dateien richtig als Blobs gespeichert werden?


----------



## ice-breaker (6. Jun 2009)

cykan hat gesagt.:


> Weiß jetzt nicht genau was du meinst.



Ich meinte Dateisysteme wurden erschaffen um da Dateien zu speichern wie deine Mp3-Files, in Datenbanken haben die recht wenig zu suchen.


----------



## maki (6. Jun 2009)

> Ich meinte Dateisysteme wurden erschaffen um da Dateien zu speichern wie deine Mp3-Files, in Datenbanken haben die recht wenig zu suchen.


Ach, dafür git es doch BLOBs und CLOBs


----------



## cykan (6. Jun 2009)

@maki
hab das ganze mal mit bilder probiert, diese dann wieder ausgeben lassen. das hat super gefunzt. aber wie gesagt, die größe macht mir jetzt sorgen. Werde weiter posten wenn ich die lösung gefunden hab!

Greetz

PS: Bin trotzdem für Lösungsvorschläge offen.


----------



## cykan (6. Jun 2009)

Hey Leute,
hatte den Fehler in meinem Java Code, bzw. hab dann doch das falsche aus meiner DB geladen um es weiter zu verarbeiten. (hab aber vorsichtshalber doch nochmal die "max allowed packet" hochgesetzt). 

Trotzdem danke!

Greetz
Cykan


----------



## cykan (6. Jun 2009)

So dann nochmal kurz.

Es ist möglich eine mp3 in der Datenbank als Blob zu speichern, diese (wie ich bspw. anfangs geschildert hab) dann über Java als Blob auszulesen und als File (mit der richtigen Endung) abzuspeichern.

Also kein neues encodieren oder ähnliches.

MfG
Cykan


----------

