Masalah: Saat menggunakan program Java untuk membaca dan menulis file txt yang berisi bahasa Mandarin, konten yang dibaca atau tertulis akan sering terlihat kacau. Alasannya sebenarnya sangat sederhana, yaitu, pengkodean sistem dan pengkodean program mengadopsi berbagai format pengkodean. Secara umum, jika Anda tidak memodifikasinya sendiri, format pengkodean yang digunakan oleh Windows itu sendiri adalah GBK (dan GBK dan GB2312 pada dasarnya adalah metode pengkodean yang sama), dan jika encode dalam IDE tidak dimodifikasi, standarnya adalah pengkodean UTF-8, itulah sebabnya kode yang dikenakan. Ketika file txt (GBK) dibuat secara manual dan ditulis dalam OS, dan itu akan kacau dengan menggunakan program untuk membaca (UTF-8). Untuk menghindari kemungkinan masalah kacau bahasa Cina, yang terbaik adalah menentukan format pengkodean secara eksplisit saat menulis dan membaca file.
1. Tulis file:
public static void writeFile (string fileName, string filecontent) {try {file f = file baru (fileName); if (! f.exists ()) {f.createNewFile (); } OutputStreamWriter write = outputStreamWriter baru (FileOutputStream baru (f), "GBK"); BufferedWriter Writer = BufferedWriter baru (tulis); writer.write (filecontent); writer.close (); } catch (Exception e) {E.PrintStackTrace (); }} 2. Baca file:
Public Static String ReadFile (String FileName) {String FileContent = ""; coba {file f = file baru (nama file); if (f.isfile () && f.exists ()) {inputStreamReader baca = new InputStreamReader (FileInputStream (f), "gbk"); BufferedReader Reader = BufferedReader baru (baca); Garis string; while ((line = reader.readline ())! = null) {filecontent += line; } read.close (); }} catch (Exception e) {e.printstacktrace (); } return filecontent; }