例如,我正在合并 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());
如何向内存流添加换行符?
您可以将换行符写入流。你需要决定你想要哪一个。您可能需要 Encoding.Xxx.GetBytes(Environment.NewLine)
。您还需要决定使用哪种编码(必须与其他文件的编码相匹配)。
由于换行符字符串是 ASCII,重要的只是单字节编码和使用更多字节编码之间的区别。例如,Unicode 每个换行符使用两个字节。
如果您需要猜测,您可能应该使用没有 BOM 的 UTF 8。
您也可以尝试完全基于文本的方法:
var result = File.ReadAllLines(a) + Environment.NewLine + File.ReadAllLines(b);
我还要指出,您需要处置您打开的流。
我是一名优秀的程序员,十分优秀!