这里我正在逐行阅读一个csv文件(更新和添加一些值)并转换成一个列表。当再次尝试从列表中写入csv文件时,我无法逐行写入它。
实际格式:
预期格式:
下面是我的代码:
using (var reader = new StreamReader(@"D:FileWatcher/File_A.csv"))
{
List<string> fulllist = File.ReadAllLines(@"D:FileWatcher/File_A.csv").ToList();
foreach(var item in fulllist)
{
var line = reader.ReadLine();
var values = line.Split(',').ToList();
var Col1Value = values[0].Substring(8,2);
var Col0Value = values[0].Substring(0,7);
values.RemoveAt(0);
values.Insert(0, Col1Value);
values.Insert(0, Col0Value);
string combinedString = string.Join(",", values);
var PathforFileB = @"D:FileWatcher/Result/File_B.csv";
File.WriteAllText(PathforFileB, combinedString);
}
}
1条答案
按热度按时间vwoqyblh1#
原始代码的主要问题是在每次循环迭代开始时都重新打开文件。将
File.WriteAllText()
更改为File.AppendAllText()
并将换行符作为字符串的一部分可以提供很大帮助。但即使这样,它的效率也比实际需要的要低得多,而且更加复杂。