C# 读取文本文件:逐行读取的实用方法

在C#编程中,逐行读取文本文件是一项常见任务。本文将介绍一种使用StreamReader和回调函数实现此目标的实用方法,并解释如何在C#的不同版本中正确处理资源释放。

代码示例

以下代码示例演示了如何逐行读取UTF-8编码的CSV文件:csharppublic void ReadCSVFile(string filePath, Action callback){ // 读取CSV文件,需要是UTF8编码 StreamReader reader = null; try { reader = new StreamReader(filePath, Encoding.GetEncoding('UTF-8')); // 读取文件内容 string line = reader.ReadLine(); //先读一行 while ((line = reader.ReadLine()) != null) { callback.Invoke(line); } } finally { if (reader != null) { reader.Dispose(); } }}

代码解释

  • 该方法接受两个参数:filePath(文件路径)和callback(一个接收字符串参数的回调函数)。* 在try块中,我们创建了一个StreamReader对象,用于读取指定路径的文件。* 使用reader.ReadLine()逐行读取文件内容。* 每读取一行,就将该行文本传递给callback函数进行处理。* 在finally块中,我们确保reader对象被正确释放,即使在读取过程中发生异常。

C# 版本兼容性

在C# 7.3之前的版本中,无法使用using语句来自动释放StreamReader对象。因此,我们使用try-finally代码块来确保资源的正确清理。

总结

本方法提供了一种灵活且可靠的方式来逐行读取文本文件,并通过回调函数对每行内容进行处理。同时,它还考虑了不同C#版本的兼容性,确保资源的正确释放。

C# 读取文本文件:逐行读取的实用方法

原文地址: https://www.cveoy.top/t/topic/2sS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录