C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でファイル内のすべての行を1行ずつ読み取る方法【ReadAllLines活用】

C#でファイル内のすべての行を1行ずつ読み取るには、ReadAllLines()メソッドを使用します。このメソッドは、指定したテキストファイルの全行を読み込み、文字列配列(string[])として返してくれます。

サンプルファイルの準備

ここでは、以下の内容が記述された「new.txt」というファイルがあると仮定して説明します。

One
Two
Three
Four

手順1:読み込むファイルのパスを設定する

まず、読み取り対象となるファイルのパスを文字列変数に設定します。

String myPath = "new.txt";

手順2:ReadAllLines()ですべての行を配列に格納する

次に、File.ReadAllLines()メソッドを呼び出し、ファイル内の全行を文字列配列に格納します。これにより、後から任意の行へ自由にアクセスできるようになります。

String[] fLine = File.ReadAllLines(myPath);

手順3:特定の行を取得する

たとえば、最初の行(1行目)を取得したい場合は、インデックス0を指定します。配列のインデックスは0から始まる点に注意してください。

fLine[0]

完全なサンプルコード

以下は、ファイル内の行を1行ずつ読み取り、コンソールに表示する完全なプログラム例です。

using System;
using System.IO;

public class Demo {
    public static void Main() {
        String myPath = "new.txt";
        String[] fLine;

        // ファイル内の全行を配列として読み込む
        fLine = File.ReadAllLines(myPath);

        // 各行を順番に表示する
        Console.WriteLine("Line 1: " + fLine[0]);
        Console.WriteLine("Line 2: " + fLine[1]);
        Console.WriteLine("Line 3: " + fLine[2]);
        Console.WriteLine("Line 4: " + fLine[3]);
    }
}

実行結果

Line 1: One
Line 2: Two
Line 3: Three
Line 4: Four

補足:大きなファイルを扱う場合の注意点

ReadAllLines()はファイル全体を一度にメモリ上へ読み込むため、非常に大きなファイルを扱う場合はメモリ消費量に注意が必要です。そのようなケースでは、StreamReaderクラスのReadLine()メソッドを使って1行ずつ逐次読み取る方法も検討するとよいでしょう。

  1. 【Java入門】ディレクトリ内のすべてのファイルを再帰的に削除するプログラムの書き方

    この記事では、Javaを使って指定したディレクトリ内のすべてのファイルを再帰的に削除する方法を解説します。サブディレクトリの中にあるファイルも含めて、ファイルだけを削除し、ディレクトリ構造自体は残すプログラムです。前提となるディレクトリ構成まず、Dドライブ直下に ExampleDirectory というフォルダがあり、その中に7つのファイルと2つのディレクトリが含まれているものと仮定します。SampleDirectory1:SampleFile1.txt と SampleFile2.txt の2つのファイルを含むSampleDirectory2:SampleFile2.txt と Sample

  2. 開いているすべてのMatplotlibの図を1つのPDFファイルにまとめて保存する方法

    Matplotlibで複数の図(figure)を作成した際、「すべての図をまとめて1つのファイルに保存したい」というニーズはよくあります。この記事では、PdfPages を使って、現在開いているすべてのMatplotlibの図を一度に1つのPDFファイルへ保存する手順を解説します。実装の手順図のサイズを設定し、autolayout でサブプロット間および周囲の余白を自動調整します。figure() メソッドで新しい図 fig1 を作成(または既存の図をアクティブ化)します。plot() メソッドで1本目の折れ線を描画します。再び figure() メソッドで新しい図 fig2 を作成します。p