Problem: Wenn Java-Programme zum Lesen und Schreiben von TXT-Dateien mit chinesischen Schriftzeichen verwendet werden, scheint der gelesene oder geschriebene Inhalt oft verstümmelt zu sein. Der Grund ist eigentlich sehr einfach: Die Systemkodierung und die Programmkodierung verwenden unterschiedliche Kodierungsformate. Wenn Sie es nicht selbst ändern, ist das von Windows selbst verwendete Codierungsformat normalerweise gbk (und gbk und gb2312 sind im Grunde dieselben Codierungsmethoden). Wenn die Codierung in der IDE nicht geändert wird, ist die Standardcodierung utf- 8, weshalb der Grund für verstümmelte Zeichen liegt. Wenn eine txt-Datei (gbk), die manuell unter dem Betriebssystem erstellt und geschrieben wurde, direkt von einem Programm (utf-8) gelesen wird, wird sie verstümmelt. Um mögliche Probleme mit verstümmeltem Chinesisch zu vermeiden, ist es am besten, das Codierungsformat beim Schreiben und Lesen von Dateien explizit anzugeben.
1. Datei schreiben:
public static void writeFile(String fileName, String fileContent) { try { File f = new File(fileName); if (!f.exists()) { f.createNewFile(); } OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f),"gbk"); BufferedWriter writer=new BufferedWriter(write); writer.write(fileContent); writer.close(); } catch (Exception e) { e.printStackTrace(); } }
2. Mehr Java-Lesung für Eine Einführung in Methoden zur Vermeidung verstümmelter chinesischer Zeichen beim Schreiben von TXT-Dateien. Bitte beachten Sie die PHP-Chinese-Website für verwandte Artikel!
public static String readFile(String fileName) { String fileContent = ""; try { File f = new File(fileName); if(f.isFile()&&f.exists()) { InputStreamReader read = new InputStreamReader(new FileInputStream(f),"gbk"); BufferedReader reader=new BufferedReader(read); String line; while ((line = reader.readLine()) != null) { fileContent += line; } read.close(); } } catch (Exception e) { e.printStackTrace(); } return fileContent; }