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:

コメント