Computerhilfen.de Logo
Forum
Tipps
News

Java, einzelne Bytes in Datei setzen

Ich brauch wiedermal eure Hilfe :-D

Also wie das Betreff schon sagt, will ich in einer Binaeren Datei einzelne Bytes setzen, oder auch ganze Byte Gruppen (eigentlich nur Byte Gruppen).

z.B. ich moechte jetzt die Bytes von Pos. 2000 - 3024 mit einem Byte array der laenge 1024, ersetzen. Der Rest der Datei soll unveraendert bleiben.

Mit Fileoutputstream, und append funktioniert es nicht, da angehaengt wird, nur der "0-Punkt", das Ende der Datei ist, und ich nicht darauf zugreifen kann. Wenn ich mir den FileChannel hole, ist auch der "0-Punkt" das Ende der Datei.

Grund: Filesharing Programm

mfg.
Fuxi

P.S. Bitte nur konstruktive Posts die mir weiterhelfen, keine "Kann dir nicht helfen", oder "Das schaffst du sowieso nicht, und warum benutzt du nich einfach C++?"


Antworten zu Java, einzelne Bytes in Datei setzen:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ich verstehe jetzt nicht ganz das Problem. Was meinst du mit 0-Punkt?
Wenn die Datei nicht zu groß ist, mach dir ein ByteArray draus, modifiziere darin und schreib wieder weg.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ich habe es schon geloest.

Also das mit dem 0-Punkt meine ich, wo der Writer in der Datei am fruehesten Anfangen kann zu schreiben, also z.B. bei einer neuen Datei eben ganz am Anfang, wenn man eine Datei mit "append" oeffnet, ist der "0-Punkt" am Ende der Datei, also er kann erst am Ende der Datei anfangen zu schreiben.

Und das mit dem Bytearray modifizieren... es handelt sich um unbekannte Datenmengen, d.h. von 10 Byte - 10 GByte kann alles drinnen sein, es ist ein Filesharing Programm, das heist es kann alles moegliche sein, und soll je nach dem wann das Programm laeuft uebertragen^^.

Da ich ein netter Mensch bin und sehr sozial, werde ich auch noch die Loesung zu diesem Thema reinschreiben:

Die Klasse hesit "RandomAccessFile". Mit ihr kann ich sowohl lesen als auch schreiben in einer Datei, und beliebige bytes manipulieren. Somit kann ich einfach bei der Adressierung eine art "Von-Bis" schicken, dann die Daten, und dann weden die genau an der Position ersetzt.

Natuerlich habe ich auch noch eine 2. Datei die mir das ganze abspeichert, was schon erfolgreich gesetztwurde. (also so 1 bit fuer sagen wa mal 1/2 MByte

mfg.
Fuxi

P.S. Wenn ihr noch mehr von dem Filesharing Programm wissen wollt fragt ruhig, ich find das is mal was anderes, obwohl ich sicher bin das es sowas schon gibt^^.


« Wie kann ich das Java System unter Win 98 testen ?Win XP: C# : LPT-Eingänge lesen -> wie? »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!