写入文本文件,跳过第一行

我想写一个文本文件,跳过第一行,但另外写一切。 我有一个数组,我正在从文件中读取,并使用它来存储和操作数据,如果文本文件中的数据需要更正,那么我想立即写回数据。 原始文本文件有两列,制表符分隔,以及我想要保留的顶部的一行。

谢谢,

阿曼达

你可以试试这个:

 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)); 

那对你有用吗?

您可以按照以下步骤完成此操作:

  1. 使用ReadAllLines method读取所有行:

     string[] lines = System.IO.File.ReadAllLines(@"File Path"); 

    现在改变任何东西,除了改变lines[0]任何东西以保证它的安全。

  2. 跳过第一行以获取剩余的可修改行以保留它:

     lines = lines.Skip(1).ToArray(); 
  3. 通过连接第一行可修改行来构造要写入文件的新数组。

     var newLines = new string[] { lines[0] }.Concat(lines); 
  4. 使用WriteAllLines method写回所有行:

     System.IO.File.WriteAllLines(@"File Path", newLines); 

注意:这样您就不需要对实际文件进行两次IO调用,这是一项代价高昂的操作。