Ответ 1
Используйте Environment.NewLine
как разделитель строк или "\r\n"
, если вы хотите сделать это вручную.
У меня проблема с С# 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 или\r a █ (что означает не отображаемый символ), и вся строка находится в одной строке... Позже текст должен передать функцию, поэтому я не могу написать текст с помощью .WriteLine, потому что я не знаю, находится ли фактическая строка в одной строке или в новой строке.
Чем я ошибаюсь?
Спасибо за любую помощь.
Используйте Environment.NewLine
как разделитель строк или "\r\n"
, если вы хотите сделать это вручную.
Линейный разделитель (newLine) \r\n
не \n\r
,
измените свой текст как:
string text = "l1\r\nl2\r\nl3\r\nl5";
Это двоичный формат:
writer.Write(text);
Это строковый последовательный формат:
writer.WriteLine(text);
Вы должны использовать формат WriteLine
...
Вы можете использовать Environment.NewLine
следующим образом:
streamWriter.Write(String.Concat(Enumerable.Repeat(Environment.NewLine, n).ToArray()));
Я попытался написать класс и отделить "\n" s но я нашел богатое текстовое поле!
да! он работает:
RichTextBox rch = new RichTextBox();
rch.Text = cmn;
foreach (string l in rch.Lines)
strw.WriteLine(l);
Попробуйте string text = @"l1\n\rl2\n\rl3\n\nl5";
. Чтобы предотвратить наложение символов.