1. 多行读取
```csharp
using (StreamReader sr = new StreamReader("file.txt"))
{
string line
while ((line = sr.ReadLine()) != null)
{
//处理每一行数据
Console.WriteLine(line)
}
}
```
上述代码中,我们首先创建一个StreamReader对象,并指定要读取的文件路径。然后通过while循环逐行读取文件内容,直到结束为止。每次读取都会返回当前行的字符串形式(不包括换行符),并将其存储在变量line中。
2. 多行写入
```csharp
using (StreamWriter sw = new StreamWriter("file.txt"))
{
for (int i = 0i <lines.Lengthi++)
{
//向文件写入一条记录
sw.WriteLine(lines[i])
}
}
```
上述代码中,我们首先创建一个StreamWriter对象,并指定要写入的文件路径。然后通过for循环遍历所有需要写入的数据,并调用WriteLine方法将其逐个写入到文件中。
注意,在使用完StreamReader或StreamWriter之后应该及时关闭它们以释放资源:
```csharp
sr.Close()
sw.Close()
```
以上就是VS文本文件多行读写 *** 作的基本示例。如果需要更加高效、灵活地进行大规模文本处理,则可以考虑使用第三方库如CsvHelper等来简化开发过程。
如果楼主只是想将文件内容顺序输出的话,那么从速度角度来看:
第一种即读即写,只需要遍历一遍文件就可以了。
第二种需要先读文件,再遍历缓存数组中的元素做输出。
所以是第一种快。
从空间占用角度来看:
第一种不需要有额外的数组做缓存。
第二种需要额外的数组做缓存,如果文件比较大的话,对内存是很大的消耗。
所以是第一种省空间。
从程序书写角度来看:
第一种使用了using,自动关闭StreamReader,而且有异常捕获,程序相对比较健壮。而且代码很简洁。
第二种,首先没有捕获异常,当然如果是故意抛给上级调用处理倒也可以。但这里虽然手动调用了objReader.Close(),一旦在之前出现异常,就会有objReader实际没有关闭的隐患。而且对sLine做了两次非空判断,其实完全可以合为一个。
所以第一种的代码简洁易看,而且健壮。
所以总的来说,第一种好于第二种。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)