"We are back" « oc.at

[Java] Musiksammlung verwalten

prayerslayer 07.11.2008 - 10:13 2361 21
Posts

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
tag!

ich hab hier eine programmidee "entwickelt" und mangels standalone-alternativen mal darüber nachgedacht, das ding selbst zu schreiben.

nicht, dass ich es jetzt zwingend tun werde, aber ich bin da auf ein problem gestoßen, wo mich einfach interessieren würde, wie ich das programmiertechnisch angehe:

nämlich die music library, wie in itunes oder foobar2k. ich scanne einmal einen ordner und bis zum erneuten scannen bleiben die files in meinem programm. das bei jedem start zu machen, kanns doch nicht sein :)

tia

Maekloev

linux addicted
Avatar
Registered: Oct 2002
Location: Absam
Posts: 920
nein, musst du auch nicht. du könntest die library beispielsweise als xml-stream ausschreiben und beim nächsten start wieder einlesen. eine andere möglichkeit wäre, das objekt library serialisiert auszuschreiben. dabei wird der aktuelle zustand des objekts binär auf die festplatte geschrieben. wenn du das programm wieder startest, musst du nur noch dieses serialisierte objekt wieder einlesen. die struktur ist dann automatisch wiederhergestellt. das openbook auf galileocomputing.de verrät einige details dazu. sollte genau das sein, was du brauchst.

edit: ich hab mal einen foliensatz hochgeladen, den wir während einer vorlesung mal durchbesprochen haben. vielleicht hilft dir der ja auch weiter.
10_streams_133024.pdf (downloaded 137x)
Bearbeitet von Maekloev am 07.11.2008, 10:41

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
also doch serialisiert auf die hdd speichern. das war auch mein erster ansatz, aber ich dachte, vielleicht gibts ja andere, bessere lösungen.

danke dir :)

jives

And the science gets done
Avatar
Registered: Sep 2001
Location: Baden
Posts: 3548
Ein weiterer Ansatz wäre eine DB, wobei es hier natürlich unzählige Möglichkeiten gibt. Eine einfache und performante Idee wäre eine BerkeleyDB, aber auch eine SQL- oder sonstige DB wäre eine Alternative.

Maekloev

linux addicted
Avatar
Registered: Oct 2002
Location: Absam
Posts: 920
ja, das wäre natürlich noch eine lösung. mysql- oder db2-server aufsetzen und dann datensätze per jdbc abfragen und einfügen. auch sehr nett.

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11346
Zitat von Maekloev
ja, das wäre natürlich noch eine lösung. mysql- oder db2-server aufsetzen und dann datensätze per jdbc abfragen und einfügen. auch sehr nett.

Overkill. Ich würde mir da SQLite (oder unter Java vermutlich HSQLDB oder sowas) anschauen.

Maekloev

linux addicted
Avatar
Registered: Oct 2002
Location: Absam
Posts: 920
Zitat
Overkill. (...)

ja, das sowieso. aber wenn schon, denn schon. sind wir hier bei oc.at, oder was? :D

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
ne also ich will für mein prog keine datenbank installieren müssen :D trotzdem danke für die hints ;)

andere frage: ich stelle mir für das programm so eine fancy tagcloud vor, wie in flash gemacht. hat da zufällig wer links für mich? oder muss ich mir nur "zeichnen in java" anschauen?

meepmeep

Here to stay
Avatar
Registered: Feb 2006
Location: Wien
Posts: 2341
Zitat von Maekloev
ja, das sowieso. aber wenn schon, denn schon. sind wir hier bei oc.at, oder was? :D

dann aber bitte gleich mit Hibernate ;)

jives

And the science gets done
Avatar
Registered: Sep 2001
Location: Baden
Posts: 3548
Zitat von prayerslayer
ne also ich will für mein prog keine datenbank installieren müssen :D
Was du ja nicht musst. BDB oder SQLite kommen ganz ohne Server aus.

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
mh, wieder mal uninformiert was behauptet :( dank dir für die info, nichtsdestotrotz finde ich, dass für die zwecke keine datenbank nötig ist :)

XXXprod

I'm gonna be made!
Avatar
Registered: Jan 2003
Location: Vienna
Posts: 945
Der Meinung bin ich nicht. Wenn du ein paar tausend Lieder serialisierst bzw. deserialisierst kann das schon einige Zeit in Anspruch nehmen. Ausserdem müsstest du IMMER und zu jeder Zeit die deserialisierten Daten im Speicher halten -> irgendwann geht dir dieser dann aus. Wenn es also um effizienz und performance gehen sollte, sollte auf jeden Fall eine Datenbank eingesetzt werden.

Lg XXX

ica

hmm
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9833
Zitat von XXXprod
Der Meinung bin ich nicht.

ich auch nicht. eine db ist die einzig vernünftige lösung. wenn du das ganze portabel machen willst kann ja noch immer die möglichkeit anbieten das irgendwie in die files zu schreiben und dann wieder einzulesen.

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
hmmm... da ich das ding in erster linie für mich schreiben würde, tät mich natürlich interessieren, wie sich die performance von serialisierter library und datenbank bei einer musiksammlung von ~15-20k tracks verhält.
praktischer wäre es wahrscheinlich, vom gefühl her... :/

kann ich das irgendwie abschätzen? ich möchte nicht alles mit serialisierung fertigcoden um draufzukommen, dass es suckt :p

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11346
Zitat von prayerslayer
hmmm... da ich das ding in erster linie für mich schreiben würde, tät mich natürlich interessieren, wie sich die performance von serialisierter library und datenbank bei einer musiksammlung von ~15-20k tracks verhält.
praktischer wäre es wahrscheinlich, vom gefühl her... :/

kann ich das irgendwie abschätzen? ich möchte nicht alles mit serialisierung fertigcoden um draufzukommen, dass es suckt :p

Mein Perlscript zum MP3-Suchen, das bei jedem Aufruf ein simples CSV-File sequenziell durchliest, war mir bisher immer schnell genug. Wenn Java mit Serialisierung nicht vergleichbar flott ist, dann suckts. :)

Probiers einfach mal aus.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz