为什么这些字符串不是单独显示的?

时间:2012-04-24 14:59:47

标签: c# string

在文件中写下person的内容

FirstName:Abcd

SecondName:Tsfsdfs

为此,我写了一个示例应用程序

namespace BinaryStream
{
    class Program
    {
        static void Main(string[] args)
        {
            StreamWriter binWriter = new StreamWriter(@"c:\happybirthday.txt");
            string name = "Sachin";
            string secondname = "tendulkar";
            string wishes = "happy birthday";

            string firstname = string.Format("FirstName: {0} \n", name);
            binWriter.Write(firstname);
            string sn = string.Format("SecondName: {0} \n", secondname);
            binWriter.Write(sn);
            binWriter.Close();          
        }
    }
}

如果我打开记事本中的内容,则字符串不会显示在下一行中 这是什么原因?格式部分是否正确?

5 个答案:

答案 0 :(得分:6)

您需要使用WriteLine,而不是Write。写入不会在行尾添加换行符\ cr。在文本中放置\ n只会放置换行符,并且不会放置回车符。

答案 1 :(得分:3)

您需要回车和换行。您只有一个换行符。将\ n替换为\ r \ n,您将在记事本中正确地看到它。

答案 2 :(得分:1)

您可能会发现需要回车符(CR)和换行符(LF)的组合,而不仅仅是LF。

所以 - 在你的代码中,用\ r \ n

替换\ n

答案 3 :(得分:1)

对于初学者,您正在创建二进制文件而不是文本文件。这可能会让记事本感到困惑。

除了在C#中,\ n仅表示LF,您必须使用\ r \ n(CR-LF)。

请写下:

string[] lines = {"FirstName: Abcd", "SecondName: Tsfsdfs"};
System.IO.File.WriteAllLines(@"c:\happybirthday.txt", lines);

答案 4 :(得分:0)

Windows中的新行\n\r。但有些程序足够聪明,只能理解\n。其他人,比如记事本 - 不是。