将 Environment.NewLine 添加到文件流中

Adding Environment.NewLine into filestream

我正在 .net 控制台应用程序中制作一个 discord 机器人,我在使用流编写器时遇到了很大的困难,所以我正在尝试文件流,我没有遇到与流编写器相同的错误,但我有添加新行的问题,

string path = @"C:\PathWouldBeHere\Log.txt"; // path to file

using (FileStream fs = File.Create(path))
{
    string dataasstring = $"[{DateTime.Now.Hour}:{DateTime.Now.Minute}][Log]{Context.User.Username}:  {Context.Message.Content}"; //your data
    byte[] info = new UTF8Encoding(true).GetBytes(dataasstring);
    fs.Write(info, 0, info.Length);
}

现在我知道我可以使用 Environment.NewLine,但我是一个彻头彻尾的菜鸟,不知道应该把它放在代码的什么地方。我知道它有点问,但如果有人可以调整我的代码,而不是记录一件事(删除以前的日志),而是添加一个换行符。

您正在使用 File.Create,它会在该位置创建一个新文件并删除该位置已存在的所有文件。您想要的是将 FileStream 构造函数与 FileMode.Append 标志一起使用:

using (FileStream fs = new FileStream(path, FileMode.Append))
{
    string dataasstring = $"[{DateTime.Now.Hour}:{DateTime.Now.Minute}][Log]{Context.User.Username}:  {Context.Message.Content}{Environment.NewLine}"; //your data
    byte[] info = new UTF8Encoding(true).GetBytes(dataasstring);
    fs.Write(info, 0, info.Length);
}

或者,您可以完全跳过流方法,只使用以下方法:

string dataasstring = $"[{DateTime.Now.Hour}:{DateTime.Now.Minute}][Log]{Context.User.Username}:  {Context.Message.Content}{Environment.NewLine}";
File.AppendAllText(path, dataasstring);