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

标签 c# .net

例如,我正在合并 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);

我还要指出,您需要处置您打开的流。

关于c# 如何向内存流添加换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35870499/

相关文章:

c# - 单元测试 .NET Core Web 应用程序的正确方法是什么?

C# 检测 AnonymousType new{name=value,} 并转换为 Dictionary<string,object>

c# - winform 在图片框内移动图像

c# - DEBentityValidationException 不是 "cleared"

c# - 以编程方式在按钮上设置图像

c# - 即使我有隐式运算符,类型转换也会失败

c# - 遵循 DDD 概念设计存储库

c# - 如何更好地检查 Request.QueryString 字符串参数是否为空?

c# - 将 MS Access 数据库转换为 Web 应用程序的简便方法

c# - React 中的 FormData 对象不会在后端 C# 上转换为模型