2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

C#でテキストファイルを読み込む方法

Posted at

本記事は以下のURLをもとに、C#(VisualStudio2019)でのテキストファイルの入出力を説明してみる試みです。

・StreamWriter クラス
https://docs.microsoft.com/ja-jp/dotnet/api/system.io.streamwriter?view=net-5.0

・StringReader クラス
https://docs.microsoft.com/ja-jp/dotnet/api/system.io.stringreader?view=net-5.0
→StreamWriterと対になっているのは、このURLだと思いますが、こちらは意図した通りに動かなかったので、以下を参照。)
https://docs.microsoft.com/ja-jp/dotnet/standard/io/how-to-read-text-from-a-file

まず、最初にプログラム冒頭で以下を定義
using System.IO;

StreamWriterのサンプルコードは以下。Cドライブの中身を.txtファイルに吐き出させます。

qiita.C#
namespace StreamReadWrite
{
    class Program
    {
        static void Main(string[] args)
        {
            // Get the directories currently on the C drive.
            DirectoryInfo[] cDirs = new DirectoryInfo(@"c:\").GetDirectories();

    // Write each directory name to a file.
            using (StreamWriter sw = new StreamWriter("CDriveDirs.txt"))
            {
                foreach (DirectoryInfo dir in cDirs)
                {
                    sw.WriteLine(dir.Name);
                }
            }

            // Read and show each line from the file.
            string line = "";
            using (StreamReader sr = new StreamReader("CDriveDirs.txt"))
            {
                while ((line = sr.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
         }
    }
}

これを実行することによって、Cドライブ直下のファイルのリストを
以下のフォルダに.txt形式で取得できます。
C:\Users\xxxx\source\repos\xxxx\xxxx\bin\Debug
(xxxx:各PCの設定に依存)

引き続き、このファイルを読み込むために以下のサンプルプログラムを使用します。

qiita.C#
namespace StreamReadWrite
{
class Program
    {
        public static void Main()
        {
            try
            {
                // Open the text file using a stream reader.
                using (var sr = new StreamReader("CDriveDirs.txt"))
                {
                    // Read the stream as a string, and write the string to the console.
                    Console.WriteLine(sr.ReadToEnd());
                }
            }
            catch (IOException e)
            {
                Console.WriteLine("The file could not be read:");
                Console.WriteLine(e.Message);
            }
        }
    }

new StreamReader部分でテキストファイルを吐き出させたファイル名を指定すれば、読み込むことができます。
また、try-catch関数を使うことによって、
ファイルがない場合、ファイルが指定のフォルダ直下に無い旨を、コマンドプロンプト上のエラー文で明言できます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?