用 C# 按行读取文本文件有哪些比较快的方式?
按行读取文本文件的方法有很多。其中包括 StreamReader.ReadLine、File.ReadLines 等。我们考虑本地计算机中有一文本文件,其中包含如下行。
使用 StreamReader.ReadLine -
C# StreamReader 用于读取流中的字符,采用指定编码。StreamReader.Read 方法从输入流中读取下一个字符或下一组字符。StreamReader 从 TextReader 继承,后者提供读取字符、块、行或所有内容的方法。
示例
using System; using System.IO; using System.Text; namespace DemoApplication{ public class Program{ static void Main(string[] args){ using (var fileStream = File.OpenRead(@"D:\Demo\Demo.txt")) using (var streamReader = new StreamReader(fileStream, Encoding.UTF8)){ String line; while ((line = streamReader.ReadLine()) != null){ Console.WriteLine(line); } } Console.ReadLine(); } } }
输出
Hi All!! Hello Everyone!! How are you?
使用 File.ReadLines
File.ReadAllLines() 方法打开一个文本文件,将该文件的所有行都读入到一个 IEnumerable<string>,然后关闭该文件。
示例
using System; using System.IO; namespace DemoApplication{ public class Program{ static void Main(string[] args){ var lines = File.ReadLines(@"D:\Demo\Demo.txt"); foreach (var line in lines){ Console.WriteLine(line); } Console.ReadLine(); } } }
输出
Hi All!! Hello Everyone!! How are you?
使用 File.ReadAllLines
这与 ReadLines 非常相似。但是,它返回 String[] 而不是 IEnumerable<String>,以便我们能够随机访问行。
示例
using System; using System.IO; namespace DemoApplication{ public class Program{ static void Main(string[] args){ var lines = File.ReadAllLines(@"D:\Demo\Demo.txt"); for (var i = 0; i < lines.Length; i += 1){ var line = lines[i]; Console.WriteLine(line); } Console.ReadLine(); } } }
输出
Hi All!! Hello Everyone!! How are you?
广告