Wie vergleichen Sie Sie mit einem null-byte?
Vorstellen, ich bin das schreiben, um eine Datei direkt auf die position 1025 bytes, verlassen die ersten 1024 bytes auf null.
Möchte ich die Datei erneut öffnen, und suchen ab dem ersten byte-position, überprüfen Sie, ob das erste byte null ist (noch nicht realen Daten)?
Wenn Sie denken, dass es ist eine Magische Sache namens "null-byte", die irgendwie anders ist als ein byte mit dem numerischen Wert 0, dann Sie irren.
InformationsquelleAutor nunos | 2011-03-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie würden Sie erwarten, zu sagen, der Unterschied zwischen einer Datei, die hatte 1024 bytes alle geschrieben als null ist, und eine Datei, die "nicht echten Daten"?
Wenn alles, was Sie tun möchten, ist für die ersten 1024 bytes null ist, Lesen Sie einfach die Daten und vergleichen Sie Sie in der üblichen Weise.
InformationsquelleAutor Jon Skeet
Was Sie nennen ein null-byte ist nicht das gleiche wie eine null-Referenz in Java. Ein null-byte ist in der Regel ein byte mit allen bits klar, also 0.
So alle Sie tun müssen ist, Lesen Sie ein byte und vergleicht es mit 0. Beachten Sie, dass die
read
Methode inInputStream
gibt einint
und -1 bedeutet Ende der Datei.InformationsquelleAutor Laurent Pireyn
Einen java-byte verwendet, alle Werte, die dargestellt werden kann durch die 8-bit-Speicher gespeichert ist, so dort ist kein Platz für ein Standard "ungültig" byte-Wert, und wählen Sie eine selbst (zum Beispiel -1, wenn Sie nur positive Werte). Wenn Sie brauchen, alle byte-Werte, die Sie verwenden können, eine größere Daten-Typ, wie kurz darstellen ungültige Werte.
Als alternative können Sie den überblick über freie/ungenutzte Bereiche in der Datei selbst, auf diese Weise haben Sie zum speichern von Informationen über freien und belegten Adressen in der Datei kann man aber immer noch Lesen eines bytes schreiben.
InformationsquelleAutor josefx