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

时间:2012-11-06 01:10:00

标签: c#

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

谢谢,

阿曼达

2 个答案:

答案 0 :(得分:1)

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

  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);
    
  5. 注意:这样您就不需要对实际文件进行两次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));

这对你有用吗?