C#高效读取大型文本文件中的特定行
需要从大型文本文件中读取特定行,避免将整个文件存储为字符串数组的内存密集型解决方案。以下方法可以实现:
方法一:字节偏移法
FileStream.Seek
方法将文件流定位到计算出的偏移量。StreamReader.ReadLine()
读取该行。方法二:LINQ方法 (适用于.NET 4.0及以上版本)
File.ReadLines(fileName).Skip(line - 1).Take(1).First()
。方法三:自定义行读取器
示例 (方法一)
<code class="language-csharp">public static string GetLine(string fileName, int line) { using (var sr = new StreamReader(fileName)) { // ... (代码略,此处需补充计算字节偏移量和读取行的逻辑) ... } }</code>
处理结构化文件
针对结构化文件,可以采用以下策略:
File.ReadLines(fileName).Take(25).ToArray()
读取前25行。X
的值。File.ReadLines(fileName).Skip(25).Take(X).ToArray()
读取接下来的X
行。通过这些方法,您可以高效地从大型文本文件中读取特定行,而无需加载整个文件到内存中。 选择哪种方法取决于文件的具体大小、结构和.NET Framework版本。
以上是如何使用 C# 高效访问大型文本文件中的特定行?的详细内容。更多信息请关注PHP中文网其他相关文章!