我有这样的文本文件
IPen ID,Datetime,Status,Data Received
是否可以在行末添加一些word
。我想附加一些word
,所以最终的结果是:
IPen ID,Datetime,Status,Data Received,Data Reply
我已经浏览和搜索,结果只显示在新行中附加文本,但这不是我想要的,我想在行尾添加文本。对我有什么建议吗?
答案 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”。如果您想在某些文本之后添加内容,之前将一行分成两行或任何您想要的内容,您可以更改此方法以执行您想要的操作,并将所有更改保存回文件中。我希望有所帮助。