例如,我正在合并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)
我怎样才能在内存流中添加换行符?
您可以将换行符写入流.你需要决定你想要哪一个.也许,你想要的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)
我还要指出,您需要处理打开的流.