将 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);
我正在 .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);