Problem: Wenn Sie Java -Programme zum Lesen und Schreiben von TXT -Dateien verwenden, die Chinese enthalten, erscheinen die Lese- oder schriftlichen Inhalte häufig verstümmelt. Der Grund ist tatsächlich sehr einfach, dh die Systemcodierung und Programmcodierung verwenden unterschiedliche Codierungsformate. Wenn Sie es nicht selbst ändern, ist das von Windows selbst verwendete Codierungsformat im Allgemeinen GBK (und GBK und GB2312 sind im Grunde die gleiche Codierungsmethode), und wenn sie in IDE nicht geändert wird, ist die Standardeinstellung die UTF-8-Codierung, weshalb der Kleidungscode stattfindet. Wenn eine TXT-Datei (GBK) manuell in Betriebssystem erstellt und geschrieben wurde und mit dem Programm zum Lesen (UTF-8) verstümmelt wird. Um mögliche Probleme mit chinesischen verstümmelten Problemen zu vermeiden, ist es am besten, das Codierungsformat beim Schreiben und Lesen der Datei explizit anzugeben.
1. Schreiben Sie eine Datei:
public static void writefile (String -Dateiname, String fileContent) {try {Datei f = neue Datei (Dateiname); if (! f.Exists ()) {f.createNewFile (); } OutputStreamWriter write = new OutputStreamWriter (neuer FileOutputStream (f), "GBK"); BufferedWriter writer = neuer bufferedWriter (write); writer.write (filecontent); writer.close (); } catch (Ausnahme e) {e.printstacktrace (); }} 2. Lesen Sie die Datei:
public static String readfile (String -Dateiname) {String fileContent = ""; try {Datei f = neue Datei (Dateiname); if (f.isfile () && f.exists ()) {InputStreamReader read = new InputStreamReader (neuer FileInputStream (f), "gbk"); BufferedReader Reader = New BufferedReader (read); Stringlinie; while ((line = reader.readline ())! = null) {filecontent += line; } read.close (); }} catch (Ausnahme e) {e.printstacktrace (); } return filecontent; }