0

我想写入一个文本文件,跳过第一行,否则会覆盖其他所有内容。我有一个从文件中读取的数组,如果需要更正文本文件中的数据,则使用它来存储和操作数据,然后我想立即写回数据。原始文本文件有两列,制表符分隔,加上我想保留的顶部单行。

谢谢,

阿曼达

4

2 回答 2

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

那对你有用吗?

于 2012-11-06T01:36:03.837 回答
1

您可以按照以下步骤完成它:

  1. 使用以下命令阅读所有行ReadAllLines method

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

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

  2. 跳过第一行以获取其余的Modifiable Lines以保留它:

    lines = lines.Skip(1).ToArray();
    
  3. 通过连接First LineModifiable Lines来构造要写入文件的新数组。

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

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

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

于 2012-11-06T01:25:51.850 回答