写入文件流时向字节序列添加换行符
Adding newline to byte sequence when writing to filestream
我正在尝试在写入 FileStream
时添加 Newline
,似乎即使我尝试:
\r\n
或
\r\n
或
System.Environment.Newline
结果文件不会添加 newlines.It 只会添加字符:
public static NewLine=>System.Environment.Newline;
string header = $"Client:{index}{Newline}Date:{DateTime.Now.ToString()}{Newline}\r\nData:{Newline}";
using (FileStream stream = new FileStream(filePath, FileMode.OpenOrCreate,FileAccess.ReadWrite, FileShare.ReadWrite))
{
await stream.WriteAsync(header.ToMemory());
ReadOnlyMemory<byte> memory = Enumerable.Aggregate(
responses,
string.Empty,
(acc, src) => acc + Newline + src.ToString()).ToMemory();
await stream.WriteAsync(memory);
}
在我们的例子中 NewLine
是 System.Environment.Newline
,但我已经尝试了上述所有组合,文件的输出是:
"Client:0\r\nDate:23.08.2018 21:56:04\r\n\r\nData:\r\n""\r\n00:00:00.3222976"510"
我想要
Client:0
Date:23.08.2018
Data: --data should start from below
00:00:00.3222976 510
.........
内存
public static ReadOnlyMemory<byte> ToMemory(this object obj)
{
string dataString = JsonConvert.SerializeObject(obj);
ReadOnlyMemory<byte> dataBytes = Encoding.UTF8.GetBytes(dataString);
return dataBytes;
}
您将一个字符串传递给 ToMemory
,后者会将其转换为 JSON。 JSON 序列化程序然后正确地转义换行符。
修复似乎只是不编码为 JSON。直接将字符串写入流。
我正在尝试在写入 FileStream
时添加 Newline
,似乎即使我尝试:
\r\n
或
\r\n
或
System.Environment.Newline
结果文件不会添加 newlines.It 只会添加字符:
public static NewLine=>System.Environment.Newline;
string header = $"Client:{index}{Newline}Date:{DateTime.Now.ToString()}{Newline}\r\nData:{Newline}";
using (FileStream stream = new FileStream(filePath, FileMode.OpenOrCreate,FileAccess.ReadWrite, FileShare.ReadWrite))
{
await stream.WriteAsync(header.ToMemory());
ReadOnlyMemory<byte> memory = Enumerable.Aggregate(
responses,
string.Empty,
(acc, src) => acc + Newline + src.ToString()).ToMemory();
await stream.WriteAsync(memory);
}
在我们的例子中 NewLine
是 System.Environment.Newline
,但我已经尝试了上述所有组合,文件的输出是:
"Client:0\r\nDate:23.08.2018 21:56:04\r\n\r\nData:\r\n""\r\n00:00:00.3222976"510"
我想要
Client:0
Date:23.08.2018
Data: --data should start from below
00:00:00.3222976 510
.........
内存
public static ReadOnlyMemory<byte> ToMemory(this object obj)
{
string dataString = JsonConvert.SerializeObject(obj);
ReadOnlyMemory<byte> dataBytes = Encoding.UTF8.GetBytes(dataString);
return dataBytes;
}
您将一个字符串传递给 ToMemory
,后者会将其转换为 JSON。 JSON 序列化程序然后正确地转义换行符。
修复似乎只是不编码为 JSON。直接将字符串写入流。