\ n未添加到文本文件中

时间:2015-02-05 14:43:22

标签: c# file io text-files

我正在尝试用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);

4 个答案:

答案 0 :(得分:5)

使用\r\nEnvironment.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);
                }
            }