Ist es möglich, ein bestimmtes Byte in einem Random zurück auf null zu setzen?

StackOverflow https://stackoverflow.com/questions/4406691

  •  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

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top