2010-11-19 6 views
4

Ich habe eine Datei mit java.io.File, FileInputStream & FileOutputStream erstellt. Angenommen, ich möchte den Wert einiger Bytes in der Datei ändern (z. B. von Byte 15 auf 35), ohne die Größe der Datei zu ändern. Ich habe versucht, ein RandomAccessFile Objekt zu erstellen und dann RandomAccessFile.seek zu verwenden, um zu Byte 15 zu wechseln, meine neuen Bytes zu schreiben und dann die Datei zu schließen. Die Datei hat ihre Größe geändert. Was ist falsch an diesem Ansatz und wie kann dies erfolgreich durchgeführt werden?Wie überschreibt man einige Bytes in einer Datei?

+5

zeigen uns einige Code – unbeli

+1

Ja, uns bitte zeigen eine snippit des Codes Sie verwenden. – jjnguy

+2

Ich nehme an, Sie versuchen nicht gleichzeitig FileOutputStream UND RandomAccessFile zu verwenden. –

Antwort

4

Sind Sie sicher, dass Sie ein Byte in die RandomAccessFile schreiben? Wenn Sie den Aufruf der Methode:

file.write(35); 

Dann wird es tatsächlich 35 als int schreiben, die 4 Bytes ist. Wenn Sie ein einzelnes Byte Versuch schreiben wollen:

file.writeByte(35);