编辑/保存CSV文件中的行

KJS*_*JSR 4 c# csv asp.net

按照这个主题后我可以创建新行,但我的问题是如何将新行保存或写入文件?

我试过'StreamWriter',但它只写了新创建的行.

有什么建议吗?

到目前为止,这是我的代码:

string path = @"C:/CSV.txt";

string[] lines = File.ReadAllLines(path);

var splitlines = lines.Select(l => l.Split(','));

foreach (var line in splitlines)
{
   if(line[1].Contains("34"))
   {                                        
     line[1] = "100";
     var newline = string.Join(",", line);
     StreamWriter sr = new StreamWriter(path);    
     sr.WriteLine(newline);
     sr.Close();                                      
   }
 }
Run Code Online (Sandbox Code Playgroud)

Tom*_*zzo 9

以下是使用StreamReader类的解决方案:

String path = @"C:\CSV.txt";
List<String> lines = new List<String>();

if (File.Exists(path));
{
    using (StreamReader reader = new StreamReader(path))
    {
        String line;

        while ((line = reader.ReadLine()) != null)
        {
            if (line.Contains(","))
            {
                String[] split = line.Split(',');

                if (split[1].Contains("34"))
                {
                    split[1] = "100";
                    line = String.Join(",", split);
                }
            }

            lines.Add(line);
        }
    }

    using (StreamWriter writer = new StreamWriter(path, false))
    {
        foreach (String line in lines)
            writer.WriteLine(line);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果要覆盖该文件,请使用 StreamWriter构造函数append = false.