C#中如何使用StreamWriter.WriteLine输出Unix换行符\n?
问题解答
1. 默认行终止符的平台相关性
StreamWriter的默认行终止符取值确实与运行平台直接相关,它默认使用Environment.NewLine属性的返回值:
- Windows平台下默认值为
\r\n - Unix/Linux/macOS平台下默认值为
\n
2. 自定义行终止符的实现方法
你完全可以手动修改StreamWriter实例的NewLine属性,强制指定行终止符为Unix风格的\n,该配置不受运行平台限制,在Windows环境下也能正常生效。
修改后的示例代码如下,同时补充了更安全的资源释放写法,无需手动调用Close方法:
using System; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { // using语句会在代码块执行结束后自动释放StreamWriter资源 using (StreamWriter sw = new StreamWriter("NewLineText.txt", true)) { // 强制指定行终止符为Unix风格的\n sw.NewLine = "\n"; for (int i = 0; i < 3; i++) { sw.WriteLine("new line test" + i); } } } } }
额外说明
如果需要全局修改所有StreamWriter的默认换行符,也可以在程序启动时修改Console.Out.NewLine属性,但不推荐全局修改,建议按需给单独的StreamWriter实例设置NewLine属性,避免影响其他模块的输出逻辑。
内容的提问来源于stack exchange,提问作者obnews
相关产品推荐
相关产品推荐

