我想写一个文本文件,跳过第一行,但另外写一切。我有一个数组,我正在从文件中读取,并使用它来存储和操作数据,如果文本文件中的数据需要更正,那么我想立即写回数据。原始文本文件有两列,制表符分隔,以及我想要保留的顶部的一行。
谢谢,
阿曼达
答案 0 :(得分:1)
您可以按照以下步骤完成操作:
使用ReadAllLines method
阅读所有行:
string[] lines = System.IO.File.ReadAllLines(@"File Path");
现在更改除lines[0]
之外的任何内容以保证其安全。
跳过第一行以获取剩余的可修改行以保留它:
lines = lines.Skip(1).ToArray();
通过将第一行与可修改行连接,构建要写入文件的新数组。
var newLines = new string[] { lines[0] }.Concat(lines);
使用WriteAllLines method
写回所有行:
System.IO.File.WriteAllLines(@"File Path", newLines);
注意:这样您就不需要对实际文件进行两次IO调用,这是一项代价高昂的操作。
答案 1 :(得分:1)
你可以试试这个:
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));
这对你有用吗?