Heim  >  Artikel  >  Java  >  Einführung in Methoden zur Vermeidung verstümmelter chinesischer Zeichen beim Lesen und Schreiben von TXT-Dateien in Java

Einführung in Methoden zur Vermeidung verstümmelter chinesischer Zeichen beim Lesen und Schreiben von TXT-Dateien in Java

高洛峰
高洛峰Original
2017-01-20 16:15:381468Durchsuche

Problem: Wenn Java-Programme zum Lesen und Schreiben von TXT-Dateien mit chinesischen Schriftzeichen verwendet werden, scheint der gelesene oder geschriebene Inhalt oft verstümmelt zu sein. Der Grund ist eigentlich sehr einfach: Die Systemkodierung und die Programmkodierung verwenden unterschiedliche Kodierungsformate. Wenn Sie es nicht selbst ändern, ist das von Windows selbst verwendete Codierungsformat normalerweise gbk (und gbk und gb2312 sind im Grunde dieselben Codierungsmethoden). Wenn die Codierung in der IDE nicht geändert wird, ist die Standardcodierung utf- 8, weshalb der Grund für verstümmelte Zeichen liegt. Wenn eine txt-Datei (gbk), die manuell unter dem Betriebssystem erstellt und geschrieben wurde, direkt von einem Programm (utf-8) gelesen wird, wird sie verstümmelt. Um mögliche Probleme mit verstümmeltem Chinesisch zu vermeiden, ist es am besten, das Codierungsformat beim Schreiben und Lesen von Dateien explizit anzugeben.

1. Datei schreiben:

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. Mehr Java-Lesung für Eine Einführung in Methoden zur Vermeidung verstümmelter chinesischer Zeichen beim Schreiben von TXT-Dateien. Bitte beachten Sie die PHP-Chinese-Website für verwandte Artikel!

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; 
}

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn