المشكلة: عند استخدام برامج Java لقراءة وكتابة ملفات TXT التي تحتوي على الصينية ، غالبًا ما يظهر المحتوى القراءة أو المكتوب. السبب في الواقع بسيط للغاية ، أي أن ترميز النظام وترميز البرنامج يعتمد تنسيقات تشفير مختلفة. بشكل عام ، إذا لم تقم بتعديلها بنفسك ، فإن تنسيق الترميز المستخدم من قبل Windows نفسه هو GBK (و GBK و GB2312 هو في الأساس نفس طريقة الترميز) ، وإذا لم يتم تعديل الترميز في IDE ، فإن الافتراضي هو ترميز UTF-8 ، وهذا هو السبب في حدوث رمز مشجه. عندما يتم إنشاء ملف TXT (GBK) يدويًا وكتابته في نظام التشغيل ، وسيتم تشويهه باستخدام البرنامج للقراءة (UTF-8). لتجنب المشكلات المشوهة الصينية المحتملة ، من الأفضل تحديد تنسيق الترميز بشكل صريح عند الكتابة وقراءة الملف.
1. اكتب ملفًا:
public static void writefile (اسم ملف السلسلة ، سلسلة fileContent) {try {file f = file new (filename) ؛ if (! f.exists ()) {f.createNewFile () ؛ } outputStreamWriter write = new OutputStreamWriter (FileOutputStream (F) ، "GBK") ؛ BufferedWriter Writer = New BufferedWriter (Write) ؛ Writer.write (fileContent) ؛ الكاتب. } catch (استثناء e) {E.PrintStackTrace () ؛ }} 2. اقرأ الملف:
السلسلة الثابتة العامة readfile (اسم ملف السلسلة) {string fileContent = "" ؛ حاول {file f = file new (filename) ؛ if (f.isfile () && f.exists ()) {inputStreamReader read = new inputStreamReader (newInputStream (f) ، "GBK") ؛ BufferedReader Reader = جديد BufferedReader (قراءة) ؛ خط السلسلة بينما ((line = reader.ReadLine ())! = null) {fileContent += line ؛ } read.close () ؛ }} catch (استثناء e) {E.PrintStackTrace () ؛ } إرجاع fileContent ؛ }