Problème: Lorsque vous utilisez des programmes Java pour lire et écrire des fichiers TXT contenant du chinois, le contenu de lecture ou écrit semblera souvent brouillé. La raison est en fait très simple, c'est-à-dire que le codage du système et l'encodage du programme adoptent différents formats d'encodage. Généralement, si vous ne le modifiez pas vous-même, le format de codage utilisé par Windows lui-même est GBK (et GBK et GB2312 sont essentiellement la même méthode de codage), et si le code en IDE n'est pas modifié, la valeur par défaut est le codage UTF-8, c'est pourquoi le code brouillé se produit. Lorsqu'un fichier TXT (GBK) est créé manuellement et écrit dans le système d'exploitation, et il sera brouillé en utilisant le programme pour lire (UTF-8). Pour éviter d'éventuels problèmes de chinois, il est préférable de spécifier explicitement le format d'encodage lors de l'écriture et de la lecture du fichier.
1. Écrivez un fichier:
public static void writeFile (string filename, string fileContent) {try {file f = new file (filename); if (! f.exists ()) {f.createenewfile (); } OutputStreamWriter write = new OutputStreamWriter (new FileOutputStream (f), "gbk"); BufferedWriter Writer = new BufferedWriter (Write); écrivain.write (fileContent); écrivain.close (); } catch (exception e) {e.printStackTrace (); }} 2. Lisez le fichier:
public static String readFile (string filename) {String fileContent = ""; essayez {fichier f = nouveau fichier (nom de fichier); if (f.isfile () && f.exists ()) {inputStreamReader read = new inputStreamReader (new FileInputStream (f), "gbk"); BufferedReader Reader = new BufferedReader (lecture); Ligne de chaîne; while ((line = reader.readline ())! = null) {fileContent + = line; } read.close (); }} catch (exception e) {e.printStackTrace (); } return fileContent; }