Свойство NewLine
StreamWriter.NewLine по умолчанию
равен Environment.NewLine - на
разных ОС это "\n" или
"\r\n". В примере проверяют
writer.NewLine == "\n" ||
writer.NewLine == "\r\n". Явно
задают "\n" для предсказуемого
WriteLine.
Синтаксис
writer.NewLine = "\n";
string nl = writer.NewLine;
Пример
Давайте проверим, что NewLine -
либо "\n", либо "\r\n":
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
var ms = new MemoryStream();
using var writer = new StreamWriter(
ms, new UTF8Encoding(false), 1024, leaveOpen: true);
bool res = writer.NewLine == "\n"
|| writer.NewLine == "\r\n";
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте зададим "\n" и запишем
строку:
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
var ms = new MemoryStream();
using (var writer = new StreamWriter(
ms, new UTF8Encoding(false), 1024, leaveOpen: true))
{
writer.NewLine = "\n";
writer.WriteLine("abcde");
writer.Flush();
}
ms.Position = 0;
using var reader = new StreamReader(ms, Encoding.UTF8);
string res = reader.ReadToEnd();
Console.WriteLine(res);
}
}
Результат выполнения кода:
"abcde\n"
Пример
Давайте сравним с
StringWriter:
using System;
using System.IO;
class Program
{
static void Main()
{
using var writer = new StringWriter();
writer.NewLine = "\n";
writer.WriteLine("abcde");
string res = writer.ToString();
Console.WriteLine(res);
}
}
Результат выполнения кода:
"abcde\n"
Смотрите также
-
метод
WriteLine,
который дописываетNewLine -
метод
ReadLine,
который убирает конец строки -
StreamWriter,
класс, где объявлено свойство -
MemoryStream,
буфер для проверки байтов