c#如何向内存流添加换行符

Hel*_*ira 1 .net c#

例如,我正在合并3个文件,但最终文件之间没有换行符...

MemoryStream m = new MemoryStream();
File.OpenRead("c:\file1.txt").CopyTo(m);
File.OpenRead("c:\file2.txt").CopyTo(m);
File.OpenRead("c:\file3.txt").CopyTo(m);
m.Position = 0;
Console.WriteLine(new StreamReader(m).ReadToEnd());
Run Code Online (Sandbox Code Playgroud)

我怎样才能在内存流中添加换行符?

usr*_*usr 6

您可以将换行符写入流.你需要决定你想要哪一个.也许,你想要的Encoding.Xxx.GetBytes(Environment.NewLine).您还需要决定使用哪种编码(必须与其他文件的编码匹配).

由于换行符串是ASCII,重要的只是单字节编码和使用更多字符串编码的区别.例如,Unicode每个换行符使用两个字节.

如果你需要猜测你可能应该使用没有BOM的UTF 8.

您还可以尝试基于全文的方法:

var result = File.ReadAllLines(a) + Environment.NewLine + File.ReadAllLines(b);
Run Code Online (Sandbox Code Playgroud)

我还要指出,您需要处理打开的流.