C#

【C# 入門】超簡単!ファイル入出力

こんにちは、リバティエンジニア[?]のFUNAです。 現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。

C#では簡単にファイルの読み込みや書き込みをする事ができる様々な関数が用意されています。
今回はその中でも【System.IO】クラスをご紹介します。

C# ファイル出力

まずはファイルの出力から見ていきましょう。
出力の方法として2つご紹介します。

  • ファイルを毎回上書きして出力する方法
  • すでに記載されている内容を残して追記する方法

ファイルに上書きして出力

ファイルを新規作成もしくは上書きして、文字列をファイルに出力するには、"File.WriteAllText"メソッドを使用します。

ファイルを上書きしてしまうので、複数回実行しても以前に出力された結果は消えてしまいますので注意してください。

using System;
using System.IO;

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

実質たった1行だけでファイルへの出力ができてしまいます。
簡単ですよね。

では次に上書きではなく、追記する方法を見ていきましょう。

ファイルに追記して出力

すでに存在しているファイルに追記するには、"AppendAllText"メソッドを使用します。

ファイルが存在していない場合でも、ファイルは新しく作成されます。
例外は発生しませんので安心してください。
では早速サンプルコードを見てください。
using System;
using System.IO;

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

これでOKです。

ですがこれだと複数回実行するとファイルの中身は、

「Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!」
このように連続して追記されてしまいます。
見にくいですよね。。

そんなときには自分で改行を入れてみましょう。

"Environment.NewLine"を使うと改行コードを入れてくれます。
実際に使ったコードも見てください。

using System;
using System.IO;

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

先程のコードとの違いは、"Hello World!"のあとに「++Environment.NewLine」を追加したことです。
こうすることで、実行結果は以下のようになります。

Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!

見やすくなりましたね。

これでファイル出力はできるようになったので、次に入力してみましょう。

C# ファイル入力

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

using System;
using System.IO;

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

こうすることで、"C:Myfoldertest.txt"のテキストがstring型のreadText変数内に格納されています。

上記のサンプルコードでは、テキストファイルのテキストを取得後"Console.WriteLine"でコンソールに出力しています。
確認したいときはステップ実行するかこのコンソール出力画面を確認してみてくださいね。

【おまけ】ファイルが存在しているかの確認

もしファイルパスに存在しないパスが指定されると、'System.IO.DirectoryNotFoundException'例外が発生してしまいます。

そうならないように対策としてファイルパスを検証する方法があります。
便利な機能があるので、是非活用してみましょう。

using System;
using System.IO;

namespace TestFileIO
{
    class Program
    {
        static void Main(string[] args)
        {
            // ファイルパス
            string path = @"C:Myfoldertest.txt"
            // ファイルの存在チェック
            if (File.Exists(path))
            {
                // ファイルが存在するので正常系の処理
                string readText = File.ReadAllText(path);
                Console.WriteLine(readText);
            }
            else
            {
                // ファイルは存在しない
                Console.WriteLine("※ ファイルは存在しません!");
            }
        }
    }
}

このようにチェックすることでプログラムが途中で例外を起こして、止まることはありません。

[C#] 条件によって処理を変えてみる(if, else)


 

Kindle Unlimitedで無料で本が読める

 

Kindle Unlimitedを無料で試す

 

なら最初の30日間は無料でコーディング・デザイン・ブログ・英語・Youtubeの参考書・キャリア・副業・マーケティング・漫画・美容知識・雑誌などが読み放題です。

人気の本もあるので是非お試ししてみてください!30日以内に解約すればお金は全くかかりません。

 


最近の投稿

【今すぐ行動しよう】フリーランスエンジニアとブログの相性は抜群!

フリーランスエンジニアがスキルや経験から得たビジネスノウハウを共有する手段として「ブログ」は非常におすすめです。自身のスキルや知識のアウトプットや、実際に自分が経験したことを共有して同じような境遇の人の手助けになるような情報を公開することで自分に帰ってくるメリットは非常に多いです。今回はそのあたりについて紹介していきます。

【経験談】フリーランスのエンジニアは本当に大変なの?安定のコツやポイント

フリーランスのエンジニアは「大変だからやめとけ」という話をよく聞くので、そのことについて現役でフリーランスエンジニアとして生活している私が、その話の実態を解説しようと思います。フリーランスエンジニアの大変なところはもちろんありますが、それ以上にメリットが多いので私個人的には非常におすすめしています。

【幸福度UP】フリーランスエンジニアの「田舎暮らし」実現できます

フリーランスエンジニアとして田舎で暮らす人が増えてるって聞くけど、本当なのかな?どうやったら実現できるのか?今回はフリーランスエンジニアとして田舎で生活をしたいという方向けに、実現可能なのか、実現するにはどうすれば良いのかをご紹介します。

【単価交渉で収入アップ】フリーランスが単価交渉を成功させる4つのポイント

フリーランスが収入をアップさせるための重要な手段のひとつに「単価交渉」があります。今回は、現役でフリーランスとしてエンジニアをしている私が実践して効果のあった単価交渉の方法やコツをご紹介します。

【 今なら無料!】タスク管理ツール「Backlog」を無料で使う方法と手順

今回は、普段のタスク管理からプロジェクトの管理まで幅広く使えるツール「Backlog」を無料で使うための方法とその手段を画像つきで紹介しました。もし気に入らなければ、期間内に解約してしまえば費用はかかりません。また、以外と知られていない「フリープラン」も紹介しているので、是非参考にしてみてください。

Copyright© FUNA BLOG , 2021 All Rights Reserved.