程式碼範例 (一)
string[] lines_A = File.ReadAllLines("C:\\test.txt"); foreach (var line in lines_A) { Console.WriteLine("字串長度={0}, 內容={1}", line.Length, line); }
程式碼範例 (二)
using (TextReader reader = new StreamReader("C:\\test.txt")) { string line; while ((line = reader.ReadLine()) != null) { Console.WriteLine("字串長度={0}, 內容={1}", line.Length, line); } Console.ReadLine(); }
但是在 .NET Framework 4 之後 有更方便的函數可以使用!
參考如下:
程式碼範例 (三)
IEnumerable < string > lines_B = File.ReadLines("C:\\test.txt"); foreach (var line in lines_B) { Console.WriteLine("字串長度={0}, 內容={1}", line.Length, line); }
點評
程式碼(一) 是常見的使用方法之一,而該方法中使用到的是 File 類別物件的 ReadAllLines 方法 及 一個 string 陣列,但是讀取一個大的檔案時,使用到 ReadAllLines 方法一次就把文字檔的所有內容讀出時,將耗用到非常多的記憶體。
程式碼(二) ,運用到 TextReader 類別物件,並使用該類別物件 ( TextReader )的 ReadLines 方法,借由一次讀取一行的方式來改善其效能,雖然是改善了卻無法很輕易的使用 File.ReadAllLines 方法。
.NET Framework 4 出現後,File 類別出現了 ReadLines 方法,另外,該方法可搭配使用 IEnumerable<T> ,所以從 程式碼(三) 就可以易知的是:
(1.) 不用再使用 string[] 陣列
(2.) 效能上也有相對性的改善
(3.) 使用習慣,撰寫程式碼的方法 (直覺性) 不變也更容易。
(4.) 有使用到 IEnumerable <T>
沒有留言:
張貼留言