Heim  >  Artikel  >  Java  >  Beim Lesen von Textdateien in Java erscheinen verstümmelte Zeichen

Beim Lesen von Textdateien in Java erscheinen verstümmelte Zeichen

王林
王林Original
2019-11-28 11:18:591848Durchsuche

Beim Lesen von Textdateien in Java erscheinen verstümmelte Zeichen

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:

Beim Lesen von Textdateien in Java erscheinen verstümmelte Zeichen

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn