c# 逐行写txt_在C#中逐行读取文件

  • Post author:
  • Post category:其他


我正在尝试读取一些文本文件,其中每一行都需要处理。目前,我只是使用StreamReader,然后分别读取每一行。

我想知道是否有更有效的方法(就LoC和可读性而言)使用LINQ来做到这一点,而又不影响运营效率。我所看到的示例涉及将整个文件加载到内存中,然后进行处理。但是,在这种情况下,我认为这样做不会非常有效。在第一个示例中,文件最多可以存储50k,在第二个示例中,不需要读取文件的所有行(大小通常小于10k)。

您可能会争辩说,如今对于这些小文件而言,这实际上已不重要,但是我相信这种方法会导致代码效率低下。

第一个例子:

// Open file

using(var file = System.IO.File.OpenText(_LstFilename))

{

// Read file

while (!file.EndOfStream)

{

String line = file.ReadLine();

// Ignore empty lines

if (line.Length > 0)

{

// Create addon

T addon = new T();

addon.Load(line, _BaseDir);

// Add to collection

collection.Add(addon);

}

}

}

第二个例子:

// Open file

using (var file = System.IO.File.OpenText(datFile))

{

// Compile regexs

Regex nameRegex = new Regex(“IDENTIFY (.*)”);

while (!file.EndOfStream)

{

String line = file.ReadLine();

// Check name

Match m = nameRegex.Match(line);

if (m.Success)

{

_Name = m.Groups[1].Value;

// Remove me when other values are read

break;

}

}

}



版权声明:本文为weixin_39552286原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。