用 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?

更新于: 2020-09-24

2 千 次以上观看

开启你的 职业生涯

通过完成课程获得认证

开始
广告