首頁 >後端開發 >C#.Net教程 >C# 程式逐行讀取檔案內容

C# 程式逐行讀取檔案內容

WBOY
WBOY轉載
2023-08-28 12:41:081315瀏覽

C# 程序逐行读取文件内容

簡介

在這裡,我們將學習編寫一個 C# 程式來逐行讀取檔案內容。有多種方法可以做到這一點。我們將一一討論。

檔案處理是用 C# 完成的。大多數情況下,文件用於儲存資料。通俗地說,文件處理或文件管理是各種過程,例如建立文件、讀取文件、寫入文件、附加文件等。文件的讀取和寫入是文件處理中最常見的兩個操作。

1。使用 File.ReadLines() 方法

逐行讀取檔案內容的第一種方法是使用 File.ReadLines() 方法。此方法接受字元編碼作為可選參數。

嗯,這個過程可能會拋出一些異常,如IO異常。如果發生 I/O 錯誤,則會拋出此錯誤;如果找不到嘗試開啟的文件,則會拋出另一個錯誤 FileNotFoundException。

此流程也有一個缺點,因為當您處理大檔案時,此技術效率相當低。這將返回 Enumerable,透過它我們可以在返回整個集合之前開始枚舉。

演算法

下面的演算法將給出使用 File.ReadLines() 方法逐行讀取檔案內容的逐步過程。

下面討論的演算法將引導我們創建程式。

第 1 步  建立一個字串來儲存檔案路徑的名稱,記住這是一個絕對路徑。

第 2 步  在逐行讀取檔案時,使用 IEumerable 來取得最終結果。

第 3 步  透過使用Environment.Newline 取得為環境定義的換行符字串。然後程式結束。

範例

以下是此過程的程式碼 -

using System;
using System.Collections.Generic;
using System.IO;

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

      IEnumerable<string> lines = File.ReadLines(fileloc);
      Console.WriteLine(String.Join(Environment.NewLine, lines));
   }
} 

輸出

This is a file.
Hello from tutorials point.

首先需要建立一個字串類型的變量,其中包含檔案位置的位址。之後,在程式中逐行讀取檔案。

2。使用 File.ReadAllLines() 方法

另一個逐行讀取檔案內容的方法是使用 File.ReadAllLines() 方法。對於大數據文件,我們不應該將 ReadAllLines 用作 ReadAllLines,與返回 Enumerable 的 ReadLines 不同,ReadAllLines 給出一個包含文件所有行的字串數組,我們必須等待返回整個字串數組才能存取該數組。

此方法接受字元編碼作為可選參數,類似於 ReadLines 的做法。那麼這個過程可能會拋出一些異常,例如IO Exception。如果發生 I/O 錯誤,則會拋出此錯誤;如果找不到嘗試開啟的文件,則會拋出另一個錯誤 FileNotFoundException。

演算法

下面的演算法將給出使用 File.ReadAllLines() 方法逐行讀取檔案內容的逐步過程。

下面討論的演算法引導我們創建程式。

第 1 步  建立一個字串來儲存檔案路徑的名稱,記住這是一個絕對路徑。

第 2 步  接下來,程式使用 ReadAllLines 開啟一個文字文件,讀取其所有行,然後結束它。

p>

第 3 步 − 透過使用Environment.Newline取得為環境定義的換行符字串。然後程式結束。

範例

以下是此過程的程式碼 -

using System;
using System.IO;

public class Example {
   public static void Main() {
      string fileloc = @"D:\ttpt\locew.txt";
      string[] lines = File.ReadAllLines(fileloc);
      Console.WriteLine(String.Join(Environment.NewLine, lines));
   }
}

輸出

This is a file.
Hello from tutorials point.

首先需要建立一個字串類型的變量,其中包含檔案位置的位址。之後,在程式中逐行讀取該檔案。在這裡,不同之處在於這些行是在字串中讀取的。它們都是在程式中使用string.join時連接起來的。

3。使用 StreamReader.ReadLine() 方法

還有一種透過 StreamReader 類別逐行讀取檔案的方法。該方法是StreamReader.ReadLine()。這將運行到文件末尾。

它的工作原理是從當前流中讀取一行文字並將其作為字串傳回。這將傳回輸入流中的下一行,如果輸入流已結束,則傳回 null。這樣它就到達了文件的末尾。

如果發生任何 I/O 錯誤,也會出現 I/O 異常。另一個異常是 OutOfMemoryException,當沒有足夠的記憶體為傳回的字串建立緩衝區時會發生這種情況。

演算法

下面的演算法將給出使用 StreamReader.ReadLine() 方法逐行讀取檔案內容的逐步過程。

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

第 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# 程式逐行讀取檔案內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除