java BufferedReader, schreibt etwas anders, als es liest
-
07-07-2019 - |
Frage
i analysierte einen Text (CAL-Code) mit BufferedReader und BufferedWriter in Java leiden Linien, die ich rot und schrieb mit outStream.write (Linie); geändert haben, schauen Sie bitte auf Screenshots:
http://uploadz.eu/images/4qz8mtkm2d9zx3x5ms3n.png h ** p: //uploadz.eu/images/c03hgkrgrmit2ij2mug.png
Wie Sie sehen, einige Sonderzeichen die Linien geändert hat, obwohl ich sie nicht ändern soll.
soweit ich weiß, BufferedWriter / Reader sollte standardmäßig in Unicode arbeiten.
Lösung
Nun BufferedWriter
und BufferedReader
codieren Agnostiker -. Sie nie die tatsächlichen Kodierungen umgehen, wie sie gerade vorhandene Leser und Schreiber Pufferung
Jetzt FileWriter
und FileReader
verwenden, um die Standard-System-Codierung (urgh). Um runde dies zu umgehen, sollten Sie in der Regel ein InputStream
/ InputStreamReader
oder OutputStream
/ OutputStreamWriter
Paar verwenden (möglicherweise in einem BufferedReader
/ BufferedWriter
verpackt), und geben Sie die Codierung explizit.
Sie haben nicht gesagt, was du liest eigentlich aus - es ist eine Datei? Haben Sie die Codierung der Datei wissen?
Andere Tipps
Sie sollten entweder wissen die Codierung, wenn Sie den Inhalt als Text (String) zu behandeln sind, oder, wenn das Kopieren Ihr Ziel ist es, oder den Inhalt als Byte-Array behandeln.