C# 逐行讀取文字檔案
Minahil Noor
2023年10月12日
-
使用 C# 中的
File.ReadLines()
方法逐行讀取文字檔案 -
使用 C# 中的
File.ReadAllLines()
方法逐行讀取文字檔案 -
使用 C# 中的
StreamReader.ReadLine()
方法逐行讀取文字檔案
我們可以對文字檔案執行多種操作。要在任何程式中使用檔案中的資料,我們首先需要以適當的資料結構讀取該資料。
在 C# 中,有幾種有效地逐行讀取文字檔案的方法。
使用 C# 中的 File.ReadLines()
方法逐行讀取文字檔案
File.ReadLines()
方法是高效地逐行讀取文字檔案的最佳方法。這個方法為大型文字檔案返回一個列舉型別 Enumerable
,這就是為什麼我們建立了一個 Enumerable string
物件來儲存文字檔案的原因。
使用此方法的正確語法如下:
File.ReadLines(FileName);
示例程式碼:
using System;
using System.Collections.Generic;
using System.IO;
public class ReadFile {
public static void Main() {
string FileToRead = @"D:\New folder\textfile.txt";
// Creating enumerable object
IEnumerable<string> line = File.ReadLines(FileToRead);
Console.WriteLine(String.Join(Environment.NewLine, line));
}
}
輸出:
// All the text, the file contains will display here.
如果開啟檔案時出現問題,File.ReadLines()
方法將丟擲 IOException
;如果請求的檔案不存在,則丟擲 FileNotFoundException
。
使用 C# 中的 File.ReadAllLines()
方法逐行讀取文字檔案
File.ReadAllLines()
方法也可用於逐行讀取檔案。它不返回 Enumerable
。它返回一個字串陣列,其中包含文字檔案的所有行。
使用此方法的正確語法如下:
File.ReadAllLines(FileName);
示例程式碼:
using System;
using System.IO;
public class ReadFile {
public static void Main() {
string FileToRead = @"D:\New folder\textfile.txt";
// Creating string array
string[] lines = File.ReadAllLines(FileToRead);
Console.WriteLine(String.Join(Environment.NewLine, lines));
}
}
輸出:
// All the text, the file contains will display here.
這個方法也丟擲異常,就像 File.ReadLines()
方法一樣。然後使用 try-catch
塊來處理這些異常。
使用 C# 中的 StreamReader.ReadLine()
方法逐行讀取文字檔案
C# 中的 StreamReader
類提供了 StreamReader.ReadLine()
方法。此方法逐行將文字檔案讀取到末尾。
StreamReader.ReadLine()
方法的正確語法如下:
// We have to create Streader Object to use this method
StreamReader ObjectName = new StreamReader(FileName);
ObjectName.ReadLine();
示例程式碼:
using System;
using System.IO;
public class ReadFile {
public static void Main() {
string FileToRead = @"D:\New folder\textfile.txt";
using (StreamReader ReaderObject = new StreamReader(FileToRead)) {
string Line;
// ReaderObject reads a single line, stores it in Line string variable and then displays it on
// console
while ((Line = ReaderObject.ReadLine()) != null) {
Console.WriteLine(Line);
}
}
}
}
輸出:
// All the text, the file contains will display here.