C#中还有哪些方法可以逐行读取文件?
时间: 2024-10-13 11:17:54 浏览: 32
在C#中,除了`File.ReadAllLines()`之外,还可以使用以下几种方法逐行读取文件:
1. **StreamReader** 和 **StreamReader.ReadLine()**: 这是最常见的逐行读取方式。你可以创建一个`StreamReader`实例,并通过循环读取每一行,直到遇到文件结束符(如`\n`, `\r\n`)为止。
```csharp
using (StreamReader reader = new StreamReader(filePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
// 处理每一行数据
}
}
```
2. **FileStream** 和 **StreamReader.ReadLine()**: 直接操作底层文件流,可以更灵活地控制读取过程。
```csharp
using (FileStream fileStream = new FileStream(filePath, FileMode.Open))
using (StreamReader reader = new StreamReader(fileStream))
{
string line;
while ((line = reader.ReadLine()) != null)
{
// 处理每一行数据
}
}
```
3. **MemoryStream** 和 **StreamReader**: 当你需要一次读取整个文件内容再进行处理时,可以先读入`MemoryStream`,然后转换成`StreamReader`。
```csharp
byte[] bytes = System.IO.File.ReadAllBytes(filePath);
using (MemoryStream memStream = new MemoryStream(bytes))
using (StreamReader reader = new StreamReader(memStream))
{
string line;
while ((line = reader.ReadLine()) != null)
{
// 处理每一行数据
}
}
```
以上每种方法都有其适用场景,根据需求选择最合适的实现方式。
阅读全文