C# サンプル集 |
Visual Basic 中学校 > C# サンプル集 > C# サンプル集目次 >
ファイルに文字列を書き込む
2021/10/10
ファイルを上書きする
この例では文字コード 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メソッドで書き込むと自動的に末尾に改行を付加します。