System.IO.File.ReadLines 方法 (String)
方法描述
读取文件的文本行。
语法定义(C# System.IO.File.ReadLines 方法 (String) 的用法)
public static IEnumerableReadLines( string path )
参数/返回值
参数值/返回值 | 参数类型/返回类型 | 参数描述/返回描述 |
---|---|---|
path | System-String | 要读取的文件。 |
返回值 | System.Collections.Generic.IEnumerable |
该文件的所有行或查询所示的行。 |
提示和注释
ReadLines 和 ReadAllLines 方法不同点在于:当使用 ReadLines 时,您可以在返回整个集合之前开始枚举字符串集合;当您使用 ReadAllLines 时,则必须等待整个字符串数组都被返回后才能访问数组。 因此,在处理非常大的文件时,ReadLines 可能更高效。
您可以使用 ReadLines 方法执行以下操作:
对文件执行 LINQ to Objects 查询以获取筛选过的行集。
使用 File.WriteAllLines(String, IEnumerable
创建集合立即被填充的实例,该集合采用其构造函数的 IEnumerable
System.IO.File.ReadLines 方法 (String)例子
下面的示例在枚举所有目录中扩展名为 .txt 的文件的 LINQ 查询中使用 ReadLines 方法,读取文件的每一行,然后显示包含字符串 "Microsoft" 的行。
using System; using System.IO; using System.Linq; class Program { static void Main(string[] args) { try { var files = from file in Directory.EnumerateFiles(@"c:\", "*.txt", SearchOption.AllDirectories) from line in File.ReadLines(file) where line.Contains("Microsoft") select new { File = file, Line = line }; foreach (var f in files) { Console.WriteLine("{0}\t{1}", f.File, f.Line); } Console.WriteLine("{0} files found.", files.Count().ToString()); } catch (UnauthorizedAccessException UAEx) { Console.WriteLine(UAEx.Message); } catch (PathTooLongException PathEx) { Console.WriteLine(PathEx.Message); } } }
异常
异常 | 异常描述 |
---|---|
ArgumentException | path 是一个零长度字符串,仅包含空白或者包含 GetInvalidPathChars 方法中已定义一个或多个无效字符。 |
ArgumentNullException | path 为 null。 |
DirectoryNotFoundException | path 无效(例如,在未映射的驱动器上)。 |
FileNotFoundException | 未找 path 中指定的文件。 |
IOException | 打开文件时发生了 I/O 错误。 |
PathTooLongException | path 超过了系统定义的最大长度。 例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260 个字符。 |
SecurityException | 调用方没有所要求的权限。 |
UnauthorizedAccessException |
|
版本信息
.NET Framework 受以下版本支持:4 .NET Framework Client Profile 受以下版本支持:4
适用平台
Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。