Hallo
Gibt es in Java eine Möglichkeit an den anfang einer datei zu schreiben und vorher n bytes vom anfang dieses files zu löschen ohne das ganze file neu schreiben zu müssen? Hab in der api leider nichts geeignetes gefunden.
mfg
Hallo
Gibt es in Java eine Möglichkeit an den anfang einer datei zu schreiben und vorher n bytes vom anfang dieses files zu löschen ohne das ganze file neu schreiben zu müssen? Hab in der api leider nichts geeignetes gefunden.
mfg
http://java.sun.com/javase/6/docs/…AccessFile.html
Besonders interressant sind hier:
* int skipBytes(int) — Moves the file pointer forward the specified number of bytes
* void seek(long) — Positions the file pointer just before the specified byte
* long getFilePointer() — Returns the current byte location of the file pointer
mit RandomAccesFile hab ich bist jetzt eh schon gearbeitet. Is suoer zum lesen, aber für meine Zwecke zum schreiben finde ich da jetzt keine methode.
Mein problem ist nämlich dass ich einen neuen header an den anfang des files schreiben muss der jedoch auch kürzer oder länger sein kann als der alte...
Deswegen kann ich den alten nicht einfach ersetzen. Ich glaub mir wird nichts anderes übrig bleiben als das gesamte file neu zu schreiben, also zuerst den header in ein leerers file und dann das alte exklusive header dazu. das is natürlich laufzeitmässig eine totale katastrophe...
was sagst du dazu
http://java.sun.com/javase/6/docs/api/java/io/RandomAccessFile.html#write(byte[])
"starting at the current file pointer." - sollte gehn
Wenn der Header dauernd a andere Größe haben kann, is es schlecht, das geht glaubi scho vom Dateisystem her nicht so wirklich. Gehts noch um die MP3-Tags?
jaja, genau die tag sache
naja, hab mich schlecht ausgedrückt, der header is eh immer konstant 10 byte gross. nur der content kann bis zu 256mb gross werden, und danach kommt halt der content vom mp3 file.
Hab mir mal im hexeditor angeschaut wie itunes das macht. wenn der neue tag kürzer ist als der alte dann füllt itunes die differenzbytes einfach mit 0x00 auf, wenn der neue tag länger ist schreibt es wie es aussieht das file neu. find ich ganz klug
bessere lösung gibt es sicher keine?
Naja, wennst net grad 20 GB mp3s neu taggst, wirds scho net so schlimm sein.
das is ja das problem. ich schreib das programm für an kunden und der will damit seine mp3 sammlung verwalten/verarbeiten. und die is sehr sehr gross (2TB - richtig gelesen, tera byte )
Eventuell kannst was rausreißen, wenn du verschiedene Platten als Quell und Zielmedium nimmst. Also angenommen, es sind 4x500GB Platten, dann ist danach der Inhalt vertauscht.
Oder einfach pro Platte einen Thread starten, dann sollts auch gehn. CPU-Last ist ja minimal.
gute idee wolfi. mal schaun wie der die platten organisiert hat...
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!