StreamWriterクラスは、既定でUTF-8を使用してファイルを作成します。
任意のエンコーディングを指定するには、エンコーディングが指定できるコンストラクタ(下表)を使用します。
コンストラクタ | 説明 |
---|---|
StreamWriter(Stream, Encoding) | 指定したエンコーディングと既定のバッファー サイズを使用して、指定したストリーム用の StreamWriter クラスの新しいインスタンスを初期化する。 |
StreamWriter(Stream, Encoding, Int32) | 指定したエンコーディングとバッファー サイズを使用して、指定したストリーム用の StreamWriter クラスの新しいインスタンスを初期化する。 |
StreamWriter(String, Boolean, Encoding) | 指定したエンコーディングと既定のバッファー サイズを使用して、指定したパス上の指定したファイル用の StreamWriter クラスの新しいインスタンスを初期化する。 ファイルが存在する場合は、ファイルを上書きするか、またはファイルの末尾に追加する。 ファイルが存在しない場合は、新しいファイルを作成する。 |
StreamWriter(String, Boolean, Encoding, Int32) | 指定したエンコーディングとバッファー サイズを使用して、指定したパス上の指定したファイル用の StreamWriter クラスの新しいインスタンスを初期化する。 ファイルが存在する場合は、ファイルを上書きするか、またはファイルの末尾に追加する。 ファイルが存在しない場合は、新しいファイルを作成します。 |
任意のエンコーディングを指定するにはSysttem.Text名前空間にあるEncodingクラスのGetEncodingメソッドを使用します。
GetEncodingメソッドは、コードページ名またはエンコーディング名を指定してエンコーディングを取得します。
VBの例
'Shift-Jisを表す文字列を指定してエンコーディングを取得する例 Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift_Jis") 'Shift-Jisを表すコードページ値を指定してエンコーディングを取得する例 Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding(932)
C#の例
// Shift-Jisを表す文字列を指定してエンコーディングを取得する例 System.Text.Encoding enc = System.Text.Encoding.GetEncoding("Shift_Jis"); // Shift-Jisを表すコードページ値を指定してエンコーディングを取得する例 System.Text.Encoding enc = System.Text.Encoding.GetEncoding(932);
参考までに、代表的なエンコーディング名とコードページ値を下記に示します。
エンコーディング名 | コードページ値 | 説明 |
---|---|---|
shift_jis | 932 | 日本語(シフトJIS) |
utf-16 | 1200 | Unicode |
x-mac-japanese | 10001 | 日本語(Mac) |
euc-jp | 51932 | 日本語(EUC) |
iso-2022-jp | 50220 | 日本語(JIS) |
utf-7 | 65000 | Unicode(UTF-7) |
utf-8 | 65001 | Unicode(UTF-8) |
以上を踏まえて、Shift-Jisでテキストファイルを作成する例を下記に示します。
VBの例
'Shift-JisでStreamWriterを作成する Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift_Jis") Dim sw As New IO.StreamWriter("C:\Work\Test.txt", True, enc) 'テキストファイルに文字を書き込む sw.WriteLine("AAA") sw.WriteLine("BBB") sw.Write("CCC") sw.WriteLine("DDD") 'StreamWriterを閉じる sw.Close()
C#の例
// Shift-JisでStreamWriterを作成する System.Text.Encoding enc = System.Text.Encoding.GetEncoding("Shift_Jis"); System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\Work\Test.txt", true, enc); // テキストファイルに文字を書き込む sw.WriteLine("AAA"); sw.WriteLine("BBB"); sw.Write("CCC"); sw.WriteLine("DDD"); // StreamWriterを閉じる sw.Close();
Please follow and like us:
コメント