Javaはローカルファイルの読み書きの中国語の文字化けしの問題を解決します

1813 ワード

Javaはローカルファイルの読み書きの中国語の文字化けしの問題を解決します
前言:
Javaプログラムで中国語を含むtxtファイルを読み書きする場合、読み書きや書き込みの内容が文字化けしてしまうことがよくあります.理由は実は簡単で、システムの符号化とプログラムの符号化は異なる符号化フォーマットを採用している.通常、自分が修正しなければwindows自身が採用する符号化フォーマットはgbk(gbkとgb 2312は基本的に同じ符号化方式)であり、IDEでEncodeが修正しなければデフォルトはutf-8の符号化であり、これがなぜ乱符号化が発生するのかの原因である.OSの下で手作業で作成して書き込むtxtファイル(gbk)は、プログラムで直接読む(utf-8)と文字化けになります.中国語の文字化けの問題を避けるためには、ファイルの書き込みと読み出し時に符号化フォーマットを明示的に指定することが望ましいです.
ローカルファイルを行ごとに読み込むには、次の手順に従います.

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

ローカルファイルへの書き込み:

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


読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!