c#如何在行尾文本文件中添加文本

本文关键字:文本 文件 添加 | 更新日期: 2023-09-27 18:09:22

我有一个像这样的文本文件

IPen ID,Datetime,Status,Data Received

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

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

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

c#如何在行尾文本文件中添加文本

这不是太清楚你在问什么,但听起来像你在说,任何行在一个文件中,有文本"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" : "")));

您可以像这样在现有文件的末尾添加文本:

        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"。如果你想在一些文本之后,之前,将一行分成两行或任何你想要的东西,你可以改变这个方法来做你想做的事情,所有的改变都会被保存回文件中。