C#使用FileStream如何CSV中循环读取每一行,找到并清空带有指定字符串的那一行数据
时间: 2024-02-12 09:06:43 浏览: 43
使用FileStream读取CSV文件,需要使用StreamReader将FileStream转化为文本流,然后逐行读取CSV文件内容。找到并清空带有指定字符串的那一行数据,需要先找到该行数据所在的行数,然后再将该行数据清空。
以下是一个示例代码,演示如何使用FileStream和StreamReader读取CSV文件,并清空指定字符串所在的行数据:
```csharp
using (FileStream fs = new FileStream("data.csv", FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
using (StreamReader sr = new StreamReader(fs))
{
// 读取CSV文件内容
string line;
int lineNumber = 0;
while ((line = sr.ReadLine()) != null)
{
lineNumber++;
// 判断是否包含指定字符串
if (line.Contains("指定字符串"))
{
// 清空该行数据
fs.Seek(-(line.Length + 2), SeekOrigin.Current); // 退回到该行数据的起始位置
for (int i = 0; i < line.Length + 2; i++) // 将该行数据清空
{
fs.WriteByte(0);
}
break; // 找到并清空数据后退出循环
}
}
}
}
```
在上面的代码中,我们使用了`FileStream.Seek`方法将文件指针退回到该行数据的起始位置,然后使用`FileStream.WriteByte`方法将该行数据清空。由于CSV文件是以逗号分隔的,所以我们需要将每行数据的结尾多加两个字节,即`"\r\n"`,所以在清空该行数据时,需要将该行数据长度加上2。
注意:在清空该行数据时,如果该行数据的长度不足以填满整行,可能会导致数据错位。因此,建议在写入CSV文件时,确保每行数据的长度相等,或者在数据结尾处补足空格。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)