Ich bin kürzlich auf ein Problem beim Lesen von Textdateien (z. B. CSV-Dateien, TXT-Dateien usw.) gestoßen, und wenn ich auf Chinesisch stoße, wird es verstümmelt. Lesen Sie den Code wie folgt:
List<String> lines=new ArrayList<String>(); BufferedReader br = new BufferedReader(new FileReader(fileName)); String line = null; while ((line = br.readLine()) != null) { lines.add(line); } br.close();
Empfohlene verwandte Video-Tutorials: Java-Online-Lernen
Prinzip:
Java Die Verarbeitung der I/O-Klasse ist wie in der Abbildung dargestellt:
Die Reader-Klasse ist die übergeordnete Klasse zum Lesen von Zeichen in Java I/O und die InputStream
-Klasse ist die übergeordnete Klasse zum Lesen von Bytes. Die Klasse InputStreamReader
ist die Brücke, die Bytes Zeichen zuordnet. Sie ist für die Verarbeitung der Konvertierung gelesener Bytes in Zeichen während des E/A-Prozesses und die spezifische Dekodierung von Bytes in Zeichen verantwortlich wird durch StreamDecoder
implementiert. Das Charset-Kodierungsformat muss vom Benutzer während des StreamDecoder
-Dekodierungsprozesses angegeben werden.
Es ist zu beachten, dass, wenn Sie keinen Zeichensatz angeben, der Standardzeichensatz in der lokalen Umgebung verwendet wird. In der chinesischen Umgebung wird beispielsweise die GBK-Codierung verwendet.
Zusammenfassung: Wenn Java den Datenstrom liest, müssen Sie die Codierungsmethode des Datenstroms angeben, andernfalls wird der Standardzeichensatz in der lokalen Umgebung verwendet.
Nach der obigen Analyse lautet der geänderte Code wie folgt:
List<String> lines=new ArrayList<String>(); BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(fileName),"UTF-8")); String line = null; while ((line = br.readLine()) != null) { lines.add(line); } br.close();
Wenn Sie weitere verwandte Tutorials erfahren möchten, können Sie Folgendes besuchen: Java-Einführungslernen
Das obige ist der detaillierte Inhalt vonBeim Lesen von Textdateien in Java erscheinen verstümmelte Zeichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!