Maison  >  Article  >  Java  >  Introduction à la solution aux caractères chinois tronqués lors de la lecture de fichiers en Java

Introduction à la solution aux caractères chinois tronqués lors de la lecture de fichiers en Java

尚
original
2019-12-03 14:38:092536parcourir

Introduction à la solution aux caractères chinois tronqués lors de la lecture de fichiers en Java

Java lit les fichiers texte (tels que les fichiers csv, les fichiers txt, etc.), et lorsqu'il rencontre le chinois, il devient tronqué. (Recommandé : tutoriel vidéo Java)

Lisez le code comme suit :

List<string> lines=new ArrayList<string>();    
BufferedReader br = new BufferedReader(new FileReader(fileName));  
String line = null;  
while ((line = br.readLine()) != null) {   
      lines.add(line);  
}  
br.close();</string></string>

Principe :

Le traitement des classes d'E/S de Java est comme suit Figure :

La classe Reader est la classe parent pour lire les caractères dans les E/S Java, et la classe InputStream est la classe parent pour lire les octets. La classe InputStreamReader est le pont qui associe les octets aux caractères. est responsable de la lecture des caractères dans les E/S. Le processus O gère la conversion des octets lus en caractères, et le décodage spécifique des octets en caractères est implémenté par StreamDecoder. Le format de codage Charset doit être spécifié par l'utilisateur lors du processus de décodage de. StreamDecoder. Il convient de noter que si vous ne spécifiez pas Charset, le caractère par défaut défini dans l'environnement local sera utilisé. Par exemple, dans l'environnement chinois, le codage GBK sera utilisé.

Introduction à la solution aux caractères chinois tronqués lors de la lecture de fichiers en Java

Résumé : Lorsque Java lit le flux de données, vous devez spécifier la méthode d'encodage du flux de données, sinon le jeu de caractères par défaut dans l'environnement local sera utilisé.

Après l'analyse ci-dessus, le code modifié est le suivant :

List<string> lines=new ArrayList<string>();  
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(fileName),"UTF-8"));  
String line = null;  
while ((line = br.readLine()) != null) {  
      lines.add(line);  
}  
br.close();</string></string>

Pour plus de connaissances sur Java, veuillez faire attention à la colonne Tutoriel de base Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn