在這裡,我們將學習編寫一個 C# 程式來逐行讀取檔案內容。有多種方法可以做到這一點。我們將一一討論。
檔案處理是用 C# 完成的。大多數情況下,文件用於儲存資料。通俗地說,文件處理或文件管理是各種過程,例如建立文件、讀取文件、寫入文件、附加文件等。文件的讀取和寫入是文件處理中最常見的兩個操作。
逐行讀取檔案內容的第一種方法是使用 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.
首先需要建立一個字串類型的變量,其中包含檔案位置的位址。之後,在程式中逐行讀取檔案。
另一個逐行讀取檔案內容的方法是使用 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時連接起來的。
還有一種透過 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中文網其他相關文章!