ヘッダー
C# サンプル集
 

ファイルに文字列を書き込む

2021/10/10

→ Visual Basic のサンプルに切り替える

 

ファイルを上書きする

この例では文字コード UTF-8 で書き込みます。対象のファイルがなければ新規にファイルを生成します。


System.IO.File.WriteAllText(@"C:\temp\test.txt", "こんにちは");

メモ:この例では末尾に改行はつきません。

 

連続して書き込む場合は、こちらの方が効率的です。

using var writer = new System.IO.StreamWriter(@"C:\temp\test.txt");
writer.Write("Write文字列をそのまま書き込みます。");
writer.WriteLine("WriteLineは末尾に改行をつけて書き込みます。");

下記は、同じものを C# 8.0(2019年9月) より前のバージョンでも動作するように記述したものです。

using (var writer = new System.IO.StreamWriter(@"C:\temp\test.txt"))
{
    writer.Write("Write文字列をそのまま書き込みます。");
    writer.WriteLine("WriteLineは末尾に改行をつけて書き込みます。");
}

 

 

Shift_JISでファイルを上書きする

この例では文字コード Shift_JIS で書き込みます。対象のファイルがなければ新規にファイルを生成します。

#if NETCOREAPP
//#if NETCOREAPP の効果で、.NET Frameworkで実行している場合、この1行は無視されます。
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
#endif

System.IO.File.WriteAllText(@"C:\temp\test.txt", "こんにちは",
                            System.Text.Encoding.GetEncoding("shift_jis"));

メモ:この例では末尾に改行はつきません。

 


ファイルを追加書きする

この例では文字コード UTF-8 で書き込みます。対象のファイルがなければ新規にファイルを生成します。


System.IO.File.AppendAllText(@"C:\temp\test.txt", "こんにちは");

メモ:この例では末尾に改行はつきません。

 

連続して書き込む場合は、こちらの方が効率的です。

using var writer = new System.IO.StreamWriter(@"C:\temp\test.txt", true);
writer.Write("Write文字列をそのまま書き込みます。");
writer.WriteLine("WriteLineは末尾に改行をつけて書き込みます。");

下記は、同じものを C# 8.0 より前のバージョンでも動作するように記述したものです。

using (var writer = new System.IO.StreamWriter(@"C:\temp\test.txt", true)
{
    writer.Write("Write文字列をそのまま書き込みます。");
    writer.WriteLine("WriteLineは末尾に改行をつけて書き込みます。");
}

 

 

Shift_JISでファイルを追加書きする

この例では文字コード Shift_JIS で書き込みます。対象のファイルがなければ新規にファイルを生成します。

#if NETCOREAPP
//#if NETCOREAPP の効果で、.NET Frameworkで実行している場合、この1行は無視されます。
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
#endif

System.IO.File.AppendAllText(@"C:\temp\test.txt", "こんにちは",
                            System.Text.Encoding.GetEncoding("shift_jis"));

メモ:この例では末尾に改行はつきません。

 

 

改行付きで書き込む

この例ではWindowsで標準的な改行コード CRLF を使って改行を書き込みます。


System.IO.File.AppendAllText(@"C:\temp\test.txt", "1行目\r\n2行目");

メモ:上述の例のように StreamWriterのWriteLineメソッドで書き込むと自動的に末尾に改行を付加します。

 

この例ではプログラムを実行しているOSの改行コードを使って改行を書き込みます。


System.IO.File.AppendAllText(@"C:\temp\test.txt", "1行目" + Environment.NewLine + "2行目");

メモ:上述の例のように StreamWriterのWriteLineメソッドで書き込むと自動的に末尾に改行を付加します。