StreamWriter.WriteLineStreamWriter.WriteLine自动编写endofline终止符,但是方法的默认endofline终止符似乎是\r\n,是否可以将其更改为\nunix平台?
我在 Windows 10 上运行代码,它与平台相关吗?我可以在Windows环境下StreamWriter.WriteLine输出带有unix行结束符的文本文件吗\n?
这是我的代码:
using System;
using System.IO;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
StreamWriter sw = new StreamWriter("NewLineText.txt", true);
for (int i = 0; i < 3; i++)
{
sw.WriteLine("new line test" + i);
}
sw.Close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
StreamWriter.WriteLine 自动写入行结束符,但是 StreamWriter.WriteLine 方法的默认行结束符似乎是 '\r\n',对于 unix 平台是否可以将其更改为 '\n' ?
当它在 Unix 上运行时就已经可以使用了\n。
我在 Windows 10 上运行代码,它与平台相关吗?
是的。
我可以在 Windows 环境下使用 StreamWriter.WriteLine 输出带有 unix 行结束符 '\n' 的文本文件吗?
是的 - 通过改变NewLine属性。您需要做的就是在调用之前设置属性WriteLine:
StreamWriter sw = new StreamWriter("NewLineText.txt", true);
sw.NewLine = "\n"; // Use Unix line endings
// Other code as before
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我还建议使用一个using声明,以便作者得到适当的处理 - 就我个人而言,我通常会使用File.AppendTextor File.CreateText。所以:
using var writer = File.AppendText("NewLineText.txt");
writer.NewLine = "\n"; // Use Unix line endings
for (int i = 0; i < 3; i++)
{
writer.WriteLine($"new line test {i}");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1217 次 |
| 最近记录: |