ホームページ  >  記事  >  バックエンド開発  >  C# プログラムはファイルの内容を 1 行ずつ読み取ります

C# プログラムはファイルの内容を 1 行ずつ読み取ります

WBOY
WBOY転載
2023-08-28 12:41:081285ブラウズ

###############導入###

ここでは、ファイルの内容を 1 行ずつ読み取る C# プログラムの作成方法を学習します。これを行うにはいくつかの方法があります。一つずつ説明していきます。 C# 程序逐行读取文件内容

ファイル処理は C# で行われます。ほとんどの場合、ファイルはデータを保存するために使用されます。平たく言えば、ファイル処理またはファイル管理とは、ファイルの作成、ファイルの読み取り、ファイルの書き込み、ファイルの追加などのさまざまなプロセスです。ファイルの読み取りと書き込みは、ファイル処理における最も一般的な操作の 2 つです。

###1。 File.ReadLines() メソッドの使用

ファイルの内容を 1 行ずつ読み取る最初の方法は、File.ReadLines() メソッドを使用することです。このメソッドは、オプションのパラメータとして文字エンコーディングを受け入れます。

そうですね、このプロセスでは IO 例外などの例外がスローされる場合があります。このエラーは、I/O エラーが発生した場合にスローされ、開こうとしているファイルが見つからない場合は、別のエラー FileNotFoundException がスローされます。

このプロセスには欠点もあります。大きなファイルを扱う場合、この手法は非常に効率が悪いからです。これにより、コレクション全体を返す前に列挙を開始できる Enumerable が返されます。

###アルゴリズム###

以下のアルゴリズムは、File.ReadLines() メソッドを使用してファイルの内容を 1 行ずつ読み取る段階的なプロセスを示します。

以下で説明するアルゴリズムは、プログラムを作成する際のガイドとなります。

ステップ 1

ファイル パスの名前を保存する文字列を作成します。これは絶対パスであることに注意してください。

ステップ 2 ファイルを 1 行ずつ読み取るときは、IEumerable を使用して最終結果を取得します。

ステップ 3 Environment.Newline を使用して、環境に定義された改行文字列を取得します。その後、プログラムは終了します。 ###例###

以下はこのプロセスのコードです -

リーリー ###出力### リーリー 最初に、ファイルの場所のアドレスを含む文字列型変数を作成する必要があります。その後、プログラム内でファイルを 1 行ずつ読み取ります。 ###2。 File.ReadAllLines() メソッドの使用 ファイルの内容を 1 行ずつ読み取るもう 1 つの方法は、File.ReadAllLines() メソッドを使用することです。ビッグ データ ファイルの場合、ReadAllLines を ReadAllLines として使用すべきではありません。Enumerable を返す ReadLines とは異なり、ReadAllLines はファイルのすべての行を含む文字列配列を提供するため、ファイルにアクセスする前に文字列配列全体が返されるまで待つ必要があります。配列。 このメソッドは、ReadLines と同様に、文字エンコーディングをオプションのパラメーターとして受け入れます。この場合、このプロセスは IO 例外などの例外をスローする場合があります。このエラーは、I/O エラーが発生した場合にスローされ、開こうとしているファイルが見つからない場合は、別のエラー FileNotFoundException がスローされます。

###アルゴリズム###

以下のアルゴリズムは、File.ReadAllLines() メソッドを使用してファイルの内容を 1 行ずつ読み取る段階的なプロセスを示します。

以下で説明するアルゴリズムは、プログラムを作成する際のガイドとなります。

ステップ 1

ファイル パスの名前を保存する文字列を作成します。これは絶対パスであることに注意してください。

ステップ 2

次に、プログラムは ReadAllLines を使用してテキスト ファイルを開き、そのすべての行を読み取って終了します。

ステップ 3

Environment.Newline を使用して、環境に定義された改行文字列を取得します。その後、プログラムは終了します。

###例### 以下はこのプロセスのコードです - リーリー ###出力### リーリー 最初に、ファイルの場所のアドレスを含む文字列型変数を作成する必要があります。その後、プログラム内でファイルを 1 行ずつ読み取ります。ここでの違いは、行が文字列として読み取られることです。プログラム内で string.join を使用すると、これらはすべて接続されます。 ###3。 StreamReader.ReadLine() メソッドの使用

StreamReader クラスを使用してファイルを 1 行ずつ読み取る方法もあります。メソッドは StreamReader.ReadLine() です。これはファイルの最後まで実行されます。

p>これは、現在のストリームからテキスト行を読み取り、それを文字列として返すことによって機能します。これは、入力ストリームの次の行を返します。入力ストリームが終了した場合は null を返します。このようにして、ファイルの最後に到達します。

I/O エラーが発生すると、I/O 例外も発生します。もう 1 つの例外は OutOfMemoryException です。これは、返された文字列用のバッファを作成するのに十分なメモリがない場合に発生します。 ###アルゴリズム### 以下のアルゴリズムは、StreamReader.ReadLine() メソッドを使用してファイルのコンテンツを 1 行ずつ読み取る段階的なプロセスを示します。

下面讨论的算法将引导我们创建程序。

第 1 步  创建一个字符串来存储文件路径的名称,记住这是一个绝对路径。

第 2 步 −  创建一个新的读取来读取文件的内容。

第 3 步  while 循环运行到文件末尾。当它达到 null 时就确定结束。

第 4 步  最终,代码在读取文件内容后退出。

示例

以下是该过程的代码 -

using System;
using System.IO;

public class Example {
   public static void Main() {
      string fileloc = @"D:\ttpt\locew.txt";

      using (StreamReader read = new StreamReader(fileloc)) {
         string line;
         while ((line = read.ReadLine()) != null) {
            Console.WriteLine(line);
         }
      }
   }
}

输出

This is a file.
Hello from tutorials point.

在此方法中,也首先使用文件地址创建一个字符串。然后创建一个读取实例。它通过逐行读取内容到达空值,即文件末尾。

时间复杂度

从这里开始,我们正在逐行读取文件,但要一次性读取。无论使用哪种方法,即 File.ReadLines()、Files.ReadAllLines() 和 StreamReader.ReadLine()。他们所有人都在一次读取文件。所以,这里每个方法的时间复杂度都是O(1)。

结论

在本文中,我们广泛讨论了逐行读取文件内容的 C# 程序。我们了解了如何通过三种不同的方式来完成它。 File 类中的两个函数是 ReadLines() 和 ReadAllLines()。第三个来自 StreamReader 类。然后我们讨论了三种技术的代码和算法。我们希望本文能够帮助您增强有关 C# 的知识。

以上がC# プログラムはファイルの内容を 1 行ずつ読み取りますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。