文字コードを指定して文字列をファイルに保存する (文字コードを指定してテキストファイルに保存する) - C#

文字コードを指定してテキストをファイルに保存する場合は、System.Text.Encodingクラスを用いてエンコーディングを指定して保存します。

Shift-JISで保存する場合

using System.IO;

public void WiteFile(){
  string filePath = "c:\data\text.txt";
  string text ="AAA BBB\r\n CCC\r\n";

  StreamWriter sw = new StreamWriter(filePath, false, Encoding.GetEncoding("shift_jis"));
  sw.Write(text);
  sw.Close();
}

EUCで保存する場合

using System.IO;

public void WiteFile(){
  string filePath = "c:\data\text.txt";
  string text ="AAA BBB\r\n CCC\r\n";

  StreamWriter sw = new StreamWriter(filePath, false, Encoding.GetEncoding("euc-jp"));
  sw.Write(text);
  sw.Close();
}

EUCで保存する場合 (WriteLineを用いる場合)

using System.IO;

public void WiteFile(){
  string filePath = "c:\data\text.txt";
  string[] text = GetLines();

  StreamWriter sw = new StreamWriter(filePath, false, Encoding.GetEncoding("euc-jp"));
  for(int i=0; i<text.Length; i++){
    sw.Write(text);
  }
  sw.Close();
}

EUCで保存する場合 (WriteAllTextを用いる場合)

using System.IO;

public void WiteFile(){
  string filePath = "c:\data\text.txt";
  Encoding enc = Encoding.GetEncoding("euc-jp");

  string text ="AAA BBB\r\n CCC\r\n";

  File.WriteAllText(filePath, text, enc);
  /*
  //ファイルに追加する場合はAppendAllTextを用いる。
  File.AppendAllText(filePath, text, enc);
  */
}
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2010-09-14
iPentec all rights reserverd.