我想写入一个文本文件,跳过第一行,否则会覆盖其他所有内容。我有一个从文件中读取的数组,如果需要更正文本文件中的数据,则使用它来存储和操作数据,然后我想立即写回数据。原始文本文件有两列,制表符分隔,加上我想保留的顶部单行。
谢谢,
阿曼达
我想写入一个文本文件,跳过第一行,否则会覆盖其他所有内容。我有一个从文件中读取的数组,如果需要更正文本文件中的数据,则使用它来存储和操作数据,然后我想立即写回数据。原始文本文件有两列,制表符分隔,加上我想保留的顶部单行。
谢谢,
阿曼达
你可以试试这个:
var content = System.IO.File
.ReadLines(file_path)
.Skip(1)
.ToArray();
您现在有一个仅包含内容的数组 - 而不是标题行。因此,请随心所欲地修改它。
然后,要保留标题行,请执行以下操作将其写回:
System.IO.File.WriteAllLines(
file_path,
System.IO.File
.ReadLines(file_path)
.Take(1)
.Concat(content));
那对你有用吗?
您可以按照以下步骤完成它:
使用以下命令阅读所有行ReadAllLines method
:
string[] lines = System.IO.File.ReadAllLines(@"File Path");
现在改变任何东西,除了改变任何东西lines[0]
来保证它的安全。
跳过第一行以获取其余的Modifiable Lines以保留它:
lines = lines.Skip(1).ToArray();
通过连接First Line和Modifiable Lines来构造要写入文件的新数组。
var newLines = new string[] { lines[0] }.Concat(lines);
使用以下代码写回所有行WriteAllLines method
:
System.IO.File.WriteAllLines(@"File Path", newLines);
注意:这样您就不需要对实际文件进行两次 IO 调用,这是一项昂贵的操作。