C# ファイル出力(StreamWriter)

C#サンプルコードプログラミング

概要説明 

テキストファイルに文字列を出力するサンプルです。

StreamWriterのWriteLineはファイルの追記と上書きが行えます。

また指定されたパスにファイルがなければファイルが作成されます。

 

始めに、コンストラクタに引数を渡し、インスタンスを作ります。

StreamWriter(arg1, arg2, arg3)

arg1出力ファイルのパスD:\test.txt
arg2追記true/false
arg3エンコードEncoding enc = Encoding.GetEncoding(“Shift_JIS”);
エンコードを引数に渡します。

作成したStreamWriterのWriteLineメソッドを使ってファイルに文字列を出力します。

例.

Encoding enc = Encoding.GetEncoding("Shift_JIS");
using (StreamWriter sw = new StreamWriter(@"D:\test.txt",false, enc))
{
    sw.WriteLine("犬");
}

StreamWriterを使用したサンプルとして、fileOutPut メソッドを作成しました。

fileOutPutは色んなデータ型を受け取るため、動的な型のdynamicを使用しています。

デバッグなどでのちょっとしたファイル出力に使えるかもしれません。

 

fileOutPut(arg1,arg2,arg3)

arg1タイトル出力する値のタイトル
arg2出力する変数など
arg3追記true/false

サンプルの内容

① 文字列の出力(上書き)

 string に格納されたデータを出力します。

②数値の出力(追記)

 int に格納されたデータを出力します。

③数値(少数あり)の出力(追記)

 double に格納されたデータを出力します。

④日時の出力(追記)

 DateTime に格納されたデータを出力します。

⑤配列の出力(追記)

 int[] arr に格納されたデータを出力します。

⑥リストの出力(追記)

 List<string> に格納されたデータを出力します。

指定可能なICONの点灯スタイル

BlinkStyleは3つの点灯スタイルを指定できます。

AlwaysBlink常に点滅
BlinkIfDifferentError始めに点灯し、時間がたつと点灯しなくなる
NeverBlink点滅しない

使用部品

No項目名Textname部品
5出力ボタン出力button1Button

プログラミング

言語:C#

using System.IO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApp25
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 出力ボタンクリック
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            // 文字列
            string s = "OKです。";

            // 数値
            int i = 999;

            // 数値(少数あり)
            double d = 999.99;

            // 日時
            DateTime dt = DateTime.Now;

            // 配列
            int[] arr = new int[3] { 10, 20, 30 };

            // リスト
            var lst = new List<string>() { "犬", "猫", "鳥" };

            // 文字列の出力
            fileOutPut("string", s,false);

            // 数値の出力
            fileOutPut("int", i);

            // 数値(少数あり)の出力
            fileOutPut("double", d);

            // 日時の出力
            fileOutPut("日時", dt);

            // 配列の出力
            fileOutPut("配列", string.Join(",", arr));

            // リストの出力
            fileOutPut("リスト", string.Join(",", lst));
        }

        /// <summary>
        /// ファイル出力処理
        /// </summary>
        /// <param name="s">タイトル</param>
        /// <param name="dyn">値</param>
        /// <param name="isAdd">追記フラグ</param>
        private void fileOutPut(string s,dynamic dyn,bool isAdd=true) {

            // 出力先ファイル名
            string saveFile = @"D:\test.txt";

            // 出力の文字コードは、Shift_JISを指定する
            Encoding enc = Encoding.GetEncoding("Shift_JIS");

            // ファイルに出力する
            using (StreamWriter sw = new StreamWriter(saveFile, isAdd, enc))
            {
                sw.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} : {s} [{dyn}]");
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}

実行結果

出力をクリックします。

データがファイルに出力されます。

以上です。

コメント

タイトルとURLをコピーしました