面试题答案
一键面试在C#中处理大文件逐行读取并避免内存溢出,可以使用StreamReader
类。以下是关键代码片段及解释:
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "yourLargeFile.txt";
using (StreamReader reader = new StreamReader(filePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
// 在这里对每一行进行分析处理
Console.WriteLine(line);
}
}
}
}
代码解释
using
语句:using
语句用于确保StreamReader
对象在使用完毕后正确释放资源。当离开using
块时,StreamReader
的Dispose
方法会自动调用,关闭文件流并释放相关资源。StreamReader
构造函数:new StreamReader(filePath)
使用给定的文件路径创建一个StreamReader
实例,用于从文件中读取文本。ReadLine
方法:reader.ReadLine()
方法逐行读取文件内容。每次调用该方法时,它会读取文件中的下一行,直到文件末尾。当到达文件末尾时,ReadLine
方法返回null
。- 循环处理:
while ((line = reader.ReadLine()) != null)
循环会持续读取文件的每一行,直到文件结束。在循环内部,可以对每一行进行所需的分析处理,例如解析数据、统计信息等。在示例中,只是简单地将每一行输出到控制台。
这种方法能够有效地逐行读取大文件,避免一次性将整个文件加载到内存中,从而防止内存溢出问题。