Java liest Textdateien (z. B. CSV-Dateien, TXT-Dateien usw.) und wird bei Chinesisch verstümmelt. (Empfohlen: Java-Video-Tutorial)
Der Lesecode lautet 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();
Das Prinzip des Java-Lesens verstümmelter Dateien:
Die Verarbeitung der E/A-Klasse von Java ist wie in der Abbildung dargestellt:
Die Reader-Klasse ist die übergeordnete Klasse zum Lesen von Zeichen in Javas E/A, und die InputStream-Klasse ist die Die übergeordnete Klasse zum Lesen von Bytes ist die Brücke, die Bytes mit Zeichen verknüpft. Sie ist für die Verarbeitung der gelesenen Bytes in Zeichen während des E/A-Prozesses verantwortlich. Während des Decodierungsprozesses von StreamDecoder muss der Benutzer das Zeichensatz-Codierungsformat angeben. Beachten Sie, dass der Standardzeichensatz in der lokalen Umgebung verwendet wird, wenn Sie keinen Zeichensatz angeben. 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();
Für weitere Java-Kenntnisse beachten Sie bitte die Spalte Java Basic Tutorial.
Das obige ist der detaillierte Inhalt vonDetaillierte Grafik- und Texterklärung zum Problem beim Lesen verstümmelter Dateien in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!