Help us understand the problem. What is going on with this article?

C#で簡単にファイル入出力

1行でファイル入出力をする方法を紹介します。
この方法を使うと、ファイルをクローズしたかなど面倒なことを考える必要はありません。(.NET Framework 2.0 以降で使用することができます。)

1.ファイル出力

1.1ファイル上書き

ファイルを新規作成(上書き)して、文字列をファイル出力をするためには、File.WriteAllTextメソッドを使用します。ファイルを上書きするため、複数回実行すると以前に出力された結果が消えます。前の結果も残したいという場合は、次の「ファイル追記」を参考にしてください。

Overwrite.cs
using System;
using System.IO;

namespace TestFileIO
{
    class Program
    {
        static void Main(string[] args)
        {
           //第1引数:ファイルパス
           //第2引数:追記するテキスト 
           File.WriteAllText(@"C:\Myfolder\test.txt", "Good morning!");
        }
    }
}

補足
第1引数のファイル名のクォーテーションの前には@をつけます。
これはエスケープシーケンスを打ち消すために使用します。
エスケープシーケンスについては、下記を参照してください。
(https://www.graffe.jp/blog/824/)

1.2ファイル追記

すでに存在しているファイルに追記するためには、AppendAllTextメソッドを使用します。(ファイルが存在していない場合は、ファイルが新しく作成されます。例外は発生しません。)

Append.cs
using System;
using System.IO;

namespace TestFileIO
{
    class Program
    {
        static void Main(string[] args)
        {
           //第1引数:ファイルパス
           //第2引数:追記するテキスト
           File.AppendAllText(@"C:\Myfolder\test.txt", "Good morning!");
        }
    }
}

Append.cppを複数回実行すると、テキストファイルには以下のように記述されます。
「Good morning!Good morning!Good morning!Good morning!Good morning!Good morning!」

読みにくい。。。。
普通は改行します。改行にはEnvironment.NewLineを使用します。
改行を追加した修正コードを以下に記載します。

Append_Mod.cs
using System;
using System.IO;

namespace TestFileIO
{
    class Program
    {
        static void Main(string[] args)
        {
           //第1引数:ファイルパス
           //第2引数:追記するテキスト
            File.AppendAllText(@"C:\Myfolder\test.txt", "Good morning!"+Environment.NewLine);
        }
    }
}

2.ファイル入力

出力したテキストファイルから、文字列を読み込むためには、File.ReadAllTextメソッドを使用します。

Read.cs
using System;
using System.IO;

namespace TestFileIO
{
    class Program
    {
        static void Main(string[] args)
        {
           //第1引数:ファイルパス 
           string readText = File.ReadAllText(@"C:\Myfolder\test.txt");
           Console.WriteLine(readText);
        }
    }
}

3.Tips

ファイルパスに存在しないフォルダパスが含まれると'System.IO.DirectoryNotFoundException'例外が発生します。対策として下記のようにファイルパスが正しいか、ファイルIO処理前に確認しておくと良いでしょう。

Tips.cs
 if (!File.Exists(path))
{
//ここにファイルIO処理を記述する
}
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした