Problème : lorsque vous utilisez des programmes Java pour lire et écrire des fichiers txt contenant des caractères chinois, le contenu lu ou écrit semble souvent tronqué. La raison est en fait très simple, c'est-à-dire que l'encodage du système et l'encodage du programme utilisent des formats d'encodage différents. Habituellement, si vous ne le modifiez pas vous-même, le format d'encodage utilisé par Windows lui-même est gbk (et gbk et gb2312 sont fondamentalement la même méthode d'encodage), et si l'encodage dans l'IDE n'est pas modifié, l'encodage par défaut est utf- 8, c'est pourquoi La raison du code tronqué. Lorsqu'un fichier txt (gbk) créé et écrit manuellement sous le système d'exploitation est lu directement par un programme (utf-8), il sera tronqué. Afin d'éviter d'éventuels problèmes de chinois tronqué, il est préférable de spécifier explicitement le format d'encodage lors de l'écriture et de la lecture de fichiers.
1. Écrire le fichier :
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. Lire le fichier :
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; }
Plus de lecture Java pour une introduction aux méthodes permettant d'éviter les caractères chinois tronqués lors de l'écriture de fichiers txt, veuillez faire attention au site Web PHP chinois pour les articles connexes !