我正在尝试用C#写入文本文件。我的意见如下:
string input = "46 47\n 48 49";
我希望这写得像下面的
46 47
48 49
但它写得像
46 47 48 49
我正在使用以下代码
string input = "46 47\n 48 49";
string path = @"d:\temp\MyTest.txt";
File.WriteAllText(path, input);
答案 0 :(得分:5)
使用\r\n
或Environment.NewLine
之类的:
string input = "46 47\r\n48 49";
或
string input = "46 47" + Environment.NewLine + "48 49";
编辑:
就修改现有字符串值而言,您可以执行String.Replace
之类的操作:
string newValue = input.Replace("\n",Environment.NewLine);
然后在newValue
File.WriteAllText
答案 1 :(得分:4)
您应该使用Environment.NewLine
属性插入新行:
string input = "46 47" + Environment.NewLine + "48 49";
正如评论中所述,Windows环境中的新行可以通过\r\n
实现,但最好使用Environment.NewLine
选项,如MSDN所述:
NewLine的属性值是专门为当前平台和.NET Framework实现定制的常量
答案 2 :(得分:1)
您是否正在使用Nodepad查看文本文件?记事本不能单独使用U + 000A处理换行符。它需要 CRLF序列。
您的程序正在编写您想要的内容,但您的编辑器无法正确显示它。
正如J. Steen所说,这里更好的选择是使用Environment.NewLine
。
答案 3 :(得分:0)
我找到了一种方式
string input = "46 47\n\n48 49";
using (StreamWriter sw = new StreamWriter(@"d:\Software\MyTest.txt", true))
{
foreach (char s in input)
{
if (s == '\n')
{
sw.Write(Environment.NewLine);
}
else
sw.Write(s);
}
}