为什么换行符不起作用?

时间:2013-10-25 05:32:20

标签: c# io

我是C#文件处理的新手,我正在编写一个非常简单的程序。代码如下:

class MainClass 
{
    public static void Main()
    {
        var sw = new StreamWriter("C:\\Users\\Punit\\Desktop\\hello.txt");
        sw.Write("HelloWorld" +Environment.NewLine);
        sw.Write("ByeWorld");
        sw.Close(); 

        Console.ReadLine();
    }
}

上面的代码在文本文件中产生以下预期结果:

HelloWorld
ByeWorld

我还写了一些像这样修改过的代码版本:

class MainClass 
{
    public static void Main()
    {
        var sw = new StreamWriter("C:\\Users\\Punit\\Desktop\\hello.txt");
        sw.Write("HelloWorld\n");
        sw.Write("ByeWorld");
        sw.Close(); 

        Console.ReadLine();
    }
}

此处不使用

Environment.Newline

我直接将“\ n”添加到“HelloWorld”行。 这产生了以下输出(在文本文件中):

HelloWorldByeWorld

我的问题是为什么第二段代码不起作用? (不在文本文件中生成换行符)

4 个答案:

答案 0 :(得分:8)

请尝试

  StreamWriter sw = new StreamWriter("C:\\Users\\Punit\\Desktop\\hello.txt");
    sw.Write("HelloWorld \r\n");
    sw.Write("ByeWorld");
    sw.Close(); 
    Console.ReadLine();

您可以通过here

阅读

答案 1 :(得分:2)

您也可以尝试使用

sw.WriteLine("HelloWorld");
sw.WriteLine("ByeWorld");

答案 2 :(得分:1)

将其更改为“sw.WriteLine”。像c ++一样,它调用换行符。你也可以 读这个: Create a .txt file if doesn't exist, and if it does append a new line

答案 3 :(得分:1)

sw.Write("HelloWorld\\n");

而不是

sw.Write("HelloWorld\n");