19

C# Stream Writer に問題があります。次のコードを使用します。

//Constructor
public EditorTXTFile
{
   FileStream f = File.Create(System.IO.Directory.GetCurrentDirectory() + "\\Output.txt");
   f.Close();
}

//Function AddText
public void AddLogFileText(string text)
{         
   string text = "l1\n\rl2\n\rl3\n\nl5";

   StreamWriter writer = new StreamWriter(System.IO.Directory.GetCurrentDirectory() + "\\Output.txt", true);
   writer.Write(text);         

   writer.Close();
}

Output.txt を開くと、\n または \ra █ (表示できない記号を意味する) が表示され、文字列全体が 1 行に表示されます...後でテキストが関数を渡す必要があるため、テキストを書き込むことができません実際の文字列が同じ行にあるか新しい行にあるかがわからないため、.WriteLine を使用します。

何が間違っているのですか?

助けてくれてありがとう。

4

6 に答える 6

37

Environment.NewLine行区切りとして使用する"\r\n"か、手動で行いたい場合に使用します。

于 2012-11-12T16:09:06.653 に答える
2

Line Separator(newLine) はあり\r\nません\n\r

テキストを次のように変更します。

       string text = "l1\r\nl2\r\nl3\r\nl5";
于 2012-11-12T16:09:20.837 に答える
0

クラスを書いて "\n" を分けようとしたところ、リッチ テキスト ボックスが見つかりました!!

うん!できます:

        RichTextBox rch = new RichTextBox();
        rch.Text = cmn;
        foreach (string l in rch.Lines)
            strw.WriteLine(l);
于 2015-02-06T09:24:08.630 に答える
0

試してみてくださいstring text = @"l1\n\rl2\n\rl3\n\nl5";。文字詰めを防止します。

于 2012-11-12T16:09:05.177 に答える
0

Environment.NewLine次のように使用できます。

streamWriter.Write(String.Concat(Enumerable.Repeat(Environment.NewLine, n).ToArray()));
于 2014-01-17T10:44:11.857 に答える