文件最大可以是 1GB
遇到了这 2 篇文章
和
内存/cpu效率哪个好
此外,我在哪里可以了解流阅读器在幕后实现的功能?
最佳答案
两者都不是 - 如果您使用的是 .NET 4,请使用 File.ReadLines
.
如果您使用的是 .NET 3.5 或更早版本,您可以自己编写这个比显示的 VB 页面更容易,因为 VB 还没有迭代器 block (它将在下一个中获取它们版本,并以比 C# 更灵活的方式):
// Optional: create an overload of this taking an encoding
public IEnumerable<string> ReadLines(string file)
{
using (TextReader reader = File.OpenText(file))
{
string line;
while ((line = reader.ReadLine()) != null)
{
yield return line;
}
}
}
这就是有效 File.ReadLines
为您所做的。
然后你可以使用:
foreach (string line in ReadLines("file.txt"))
{
// Use a line at a time
}
内存中一次不会超过一行(缓冲区的大小),而且它的 CPU 效率也相当高。
所有 都将在后台使用 StreamReader
,这是正确的,因为它是将二进制数据流转换为 TextReader 的规范方法
。基本上,它从 Stream
读取二进制数据,并在请求时使用 Encoding
将该数据转换为文本。您还需要了解什么?
关于c# - 读取文件行的实现选择 - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7017918/