気軽に遊べるミニゲームを制作しています

ブラウザゲームまとめ

【c# WPF道場】テキストファイルの作成・編集方法

WPF

テキストファイルの作成

以下のフォルダにテキストファイルを作成します。

テキストファイルを作成するには、File.CreateText関数を使用します。

以下、コードになります。ボタンをクリックしたときに、testFile.txtを作成する処理になります。

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            System.IO.File.CreateText(@"C:\Users\eggam\Desktop\testFolder\testFile.txt");
            MessageBox.Show("テキストファイルを作成しました");
        }

実行後、ファイルが作成されました。

テキストファイルの中身を編集する

先ほど作成したテキストファイルの内容を編集します。

まず、StreamWriterを使って、編集したいパスのオブジェクトを取得して、それから、WriteLine関数を使ってファイルを編集します。

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            StreamWriter sw = new StreamWriter(@"C:\Users\eggam\Desktop\testFolder\testFile.txt");
            sw.WriteLine("あいうえお");
            sw.Close();  //オブジェクトを破棄
            MessageBox.Show("テキストファイルに書き込みました");
        }

結果は以下の通りです。

ちなみに、Enviroment.NewLineを使って、書き込むテキストを改行させることができます。

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            StreamWriter sw = new StreamWriter(@"C:\Users\eggam\Desktop\testFolder\testFile.txt");

            string writeData = "あいうえお"+Environment.NewLine+"かきくけこ";
            sw.WriteLine(writeData);

            sw.Close();  //オブジェクトを破棄
            MessageBox.Show("テキストファイルに書き込みました");
        }

テキストファイル作成と編集を一緒の関数でやる

上記処理を同じ関数でやろうとすると、エラーが返ります。理由は、ファイル作成の後、オブジェクトを破棄されておらず、書き込みの時に、これは使われているからアクセスできないよ!ということになるからです。

一緒にやるためには、ファイル作成後、オブジェクトを破棄するように作成してあげる必要があります。

File.Createの処理を以下のように書き換えます。

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            FileInfo fi = new FileInfo(@"C:\Users\eggam\Desktop\testFolder\testFile.txt");
            FileStream fs = fi.Create(); //テキストを作成
            fs.Close(); //オブジェクトを破棄
            MessageBox.Show("テキストファイルを作成しました");

            StreamWriter sw = new StreamWriter(@"C:\Users\eggam\Desktop\testFolder\testFile.txt");

            string writeData = "あいうえお" + Environment.NewLine + "かきくけこ";
            sw.WriteLine(writeData);

            sw.Close();  //オブジェクトを破棄
            MessageBox.Show("テキストファイルに書き込みました");
        }

先ほどのStreamWriter同様、FileStreamでオブジェクトを破棄できるよう変更しました。

実行前

実行後

コメント

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