2016-07-25 96 views
1

Ich habe eine .doc-Datei mit enthält Header vor der SoÏ, also muss ich alle Zeichen entfernen, die vor der existÏ existieren.So identifizieren Sie ein spezielles Zeichen in einer Datei mit Java

Beispiel: asdfasdfasdfasfasdfasfÐÏ9asjdfkj

Ich habe den folgenden Code verwendet.

Allerdings schreibt es nichts in meiner Datei als erste, wenn die Bedingung nicht erfüllt wird. Bitte geben Sie an, wie ich das ausführen kann.

+0

Ich muss nur die Zeichen vor dem "ÏÏ" entfernen, und der Inhalt des Dokuments wird immer noch gleich bleiben. Ich habe diese Methode nur durch Lesen und Schreiben ohne Änderung versucht, doc-Datei ist perfekt. – Vinoth

Antwort

1

Es ist etwas nicht in Ordnung, wenn Sie char c = (char)b; verwenden

Siehe byte-and-char-conversion-in-java

Sie

Ein Zeichen in Java zu sehen ist eine Unicode-Code-Einheit, die als Zahl ohne Vorzeichen behandelt wird .

Nehmen Sie Ihren Fall als Beispiel. Das Byte binäre Darstellung von Zeichen ‚I‘ ist 11001111. zu oracle tutorial Siehe,

Byte: Der Byte-Datentyp ist eine 8-Bit-Komplement der zwei ganzzahligen signiert. Es hat einen minimalen Wert von -128 und einen maximalen Wert von 127 (inklusive).

Also ist der Wert von Byte -49. Für die Verwendung von Unicode sollte 11001111 jedoch als vorzeichenloses Byte interpretiert werden und eigentlich 207 sein.

erhalten den vorzeichenlosen Byte-Wert der binären Präsentation.

Sie können Ihren Code wie folgt ändern. Zum Debuggen habe ich den Dateipfad und das Dateiformat geändert. Ich bin mir nicht sicher, ob .doc ein Problem ist, aber Ihr Code selbst hat Fehler, die ich eigentlich erwähnt habe.