Ist es möglich, ein bestimmtes Byte in einem Random zurück auf null zu setzen?
-
25-09-2019 - |
Frage
origianlly, wenn ich die Random erstellt, übersprungen ich so diejenigen, einige Bytes über als null geblieben, aber jetzt brauche ich einige der löschen Bytes ich geschrieben habe. Gerade jetzt, was ich tue, um die Position mit einem Raum zu überschreiben, aber gibt es eine Möglichkeit, es zu setzen zurück zu leeren?
EDIT:. Da es sich um einen Wert enthalten hat, ich möchte wissen, wie es zu setzen wieder auf den ursprünglichen Wert, dass sie standardmäßig zugewiesen wird, wenn er übersprungen
Lösung
Eine Datei kann nicht ein „leeres“ Byte enthält. Jedes Byte in der Datei muss einen Wert zwischen 0 und 255.
Wenn Sie nach einem bestimmten Punkt auf „Löschen“ alle Bytes möchten, können Sie RandomAccessFile.setLength
die kürzt die Datei verwenden kann.
In Bezug auf Ihrer Anmerkung: Wenn Sie einige Bytes zurück auf seinen ursprünglichen Wert einstellen mögen, empfehle ich Ihnen einen RandomAccessFile
in Ihrer eigenen Klasse mit einer Karte aus dem Index zu dem ursprünglichen Byte-Wert zu kapseln, die Sie in jedem Aufruf write
aktualisieren. Diese Unterklasse könnte dann eine Methode restore(int i)
bereitzustellen, die durch Nachschlagen des ursprünglichen Wertes in der Karte den Wert des Bytes an dem Index i
wieder her.
Andere Tipps
Es ist extrem unklar, was Sie versuchen, zu tun, aber man kann nicht „löschen“ Bytes vom Anfang oder in der Mitte einer Datei. Sie können in der Regel truncate eine Datei, aber Sie können nicht Bits von der Mitte entfernen -. Sie würden normalerweise eine neue Datei erstellen, werden nur die Daten kopieren Sie wollen, und dann möglicherweise die Dateien entsprechend umbenennen