首页 > 后端开发 > C++ > 如何在C#.NET中的行有效读取文本文件?

如何在C#.NET中的行有效读取文本文件?

Barbara Streisand
发布: 2025-01-29 08:30:13
原创
1086 人浏览过

How Can I Efficiently Read a Text File Line by Line in C# .NET?

高效读取文本文件:逐行处理

问题:

如何在 C# .NET 中高效地逐行读取文本文件?

解答:

根据具体需求,有多种方法可以优化文件读取。

使用 StreamReader.ReadLine:

与缓冲区大小为 128 字节相比,使用 StreamReader 并设置适当的缓冲区大小(例如,默认的 1024 或更大)可以显着提高性能。

using (var fileStream = File.OpenRead(fileName))
using (var streamReader = new StreamReader(fileStream, Encoding.UTF8, true, 1024)) {
    string line;
    while ((line = streamReader.ReadLine()) != null)
    {
        // 处理每一行
    }
}
登录后复制

使用 File.ReadLines:

这是一种针对逐行处理进行优化的替代方法,它避免了同时占用所有行的内存。

var lines = File.ReadLines(fileName);
foreach (var line in lines)
    // 处理每一行
登录后复制

使用 File.ReadAllLines:

虽然返回一个 String[],但此方法比上述方法的内存需求更高。但是,它允许随机访问行。

var lines = File.ReadAllLines(fileName);
for (var i = 0; i < lines.Length; i++)
    // 处理每一行
登录后复制

使用 String.Split:

此方法通常较慢且内存密集,它将文件的全部内容分割成一个包含各行的数组。

using (var streamReader = File.OpenText(fileName)) {
    var lines = streamReader.ReadToEnd().Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
    foreach (var line in lines)
        // 处理每一行
}
登录后复制

基准测试对于根据您的特定文件大小和处理要求确定最佳方法至关重要。对于高效的逐行处理,通常建议使用 File.ReadLines。

以上是如何在C#.NET中的行有效读取文本文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板