C#如何在行文本文件的末尾附加文本?

时间:2016-09-28 03:43:19

标签: c#

我有这样的文本文件

IPen ID,Datetime,Status,Data Received

是否可以在行末添加一些word。我想附加一些word,所以最终的结果是:

IPen ID,Datetime,Status,Data Received,Data Reply

我已经浏览和搜索,结果只显示在新行中附加文本,但这不是我想要的,我想在行尾添加文本。对我有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您不会过分清楚自己在问什么,但听起来您说文件"IPen ID,Datetime,Status,Data Received"中的任何一行都应该替换为文字"IPen ID,Datetime,Status,Data Received,Data Reply"

如果是这样,则此代码有效:

File
    .WriteAllLines(@"path",
        File
            .ReadAllLines(@"path")
            .Select(x =>
                x + (x == "IPen ID,Datetime,Status,Data Received" ? ",Data Reply" : "")));

答案 1 :(得分:1)

您可以在现有文件的末尾添加文字,如下所示:

        using (var stream = new StreamWriter("Your file path here"))
        {
            stream.Write("Your text here");
        }

仅当文件末尾已存在行尾字符时,此方法才会将文本添加到新行中。否则,它将添加在同一行。

这也只在文件的末尾添加文本,如果你需要选择行或插入符合特定条件的所有行,它会更复杂一点,但如果你告诉我,我可以告诉你正是你需要的。

编辑:由于你需要在一行中间添加文本,我们应该读取所​​有行,然后更改然后将它们保存回文件:

        // Define your file path.
        var filePath = "Your file path here";

        // Fill an array with the lines from the txt file.
        var txtLines = File.ReadAllLines(filePath);

        // Change all lines into what you want.
        var changedLines = ChangeLines(txtLines);

        // Write the file with all the changed lines.
        File.WriteAllLines(filePath, changedLines);

这是改变线条的方法:

    public static IEnumerable<string> ChangeLines(IEnumerable<string> lines)
    {
        foreach (var line in lines)
        {
            yield return line.Replace("A C", "A B C");
        }
    }

这将用“A B C”替换所有出现的“A C”。如果您想在某些文本之后添加内容,之前将一行分成两行或任何您想要的内容,您可以更改此方法以执行您想要的操作,并将所有更改保存回文件中。我希望有所帮助。