我正在尝试更改.CSV文件中的某些文字。
StreamReader sReader = new StreamReader(path1);
while (sReader.Peek() != -1)
{
rowValue = sReader.ReadLine();
if (rowValue == "25")
{
sWriter = new StreamWriter(path1);
rowValue = "27";
sWriter.WriteLine(rowValue);
}
}
什么都没发生。请问正确的方法是什么?
答案 0 :(得分:1)
我不相信你可以做你想做的事......更新一行。如果它正在运行,那么您将值27
附加到文件的末尾。
查看ReadAllLines
和WriteAllLines
方法。您需要读取整个文件,更改要更改的行,然后将其写回。
答案 1 :(得分:1)
好吧,如果要读取的文件不是很大,你可以尝试读取内存中的所有内容并回写
string[] lines = File.ReadAllLines(path1);
using(StreamWrite sw = new StreamWriter(path1))
{
foreach(string line in lines)
{
string lineOut = line;
if (line == "25")
lineOut = "27";
sw.WriteLine(lineOut);
}
sw.Flush();
}
答案 2 :(得分:1)
您可以使用System.IO.File.ReadAllLines和System.IO.File.WriteAllLines轻松完成此任务
string[] lines = File.ReadAllLines(path1);
for(int i = 0; i < lines.Length; i++)
{
if(lines[i] == "25") lines[i] = "27";
}
File.WriteAllLines(path1, lines);