2016-01-18 2 views
-4

Я довольно новичок в разработке C#, и моя проблема заключается в написании текстового файла. Я нашел некоторое решение с StreamWriter lik this ...Как написать файл удобно и легко?

StreamWriter file = new StreamWriter("C:\Downloads\test.txt"); 
file.WriteLine("this is line one"); 
file.WriteLine("\r\n"); 
file.WriteLine("this is line 2"); 
file.Close(); 

Есть ли более удобный способ записи файла? Может быть, без жесткого кодирования "\r\n"?

+1

Что вы подразумеваете под _comfortable_? Почему вы думаете, что это неудобно? –

+2

Просто используйте ['file.WriteLine()'] (https://msdn.microsoft.com/en-us/library/ebb1kw70 (v = vs.110) .aspx) вместо 'file.WriteLine (" \ r \ п ")'. –

+1

Вы также должны использовать инструкцию 'using', поскольку StreamWriter реализует IDisposable. –

ответ

8

Самым простым подходом для написания файла многострочных является File.WriteAllLines:

File.WriteAllLines(@"c:\Downloads\test.txt", 
    new[] { "this is line one", "", "", "this is line 2" }); 

пустых строки там, потому что в вашем исходном коде вы закончите с четырьмя строками текста ... WriteLine уже добавляет разделитель строк, и вы тоже получили его в среднем вызове. Если вы хотите только две линии (в соответствии с указанным содержимым), то вы должны использовать:

File.WriteAllLines(@"c:\Downloads\test.txt", 
    new[] { "this is line one", "this is line 2" }); 

Это будет использовать платформу по умолчанию окончание строки. Если вы не хотите использовать это, вы можете использовать string.Join, чтобы объединить линии, но вы хотите, а затем позвонить File.WriteAllText.

Все методы File.*, использующие текст по умолчанию, используют UTF-8, но позволяют указать кодировку, если вы хотите что-то еще.

1

Если только беспокойство окончаний линии, вы можете использовать один, пустой WriteLine() (который использует Environment.NewLine, который принимает в конце строки представление для этой ОС):

file.WriteLine(); 

Кроме того, StreamWriter является хороший способ писать в файл, и это тоже очень легко. Если вы предпочитаете длинную конкатенацию строк и запись сразу, опция File.WriteAllText.

И не забудьте using заявления распоряжаться своими ресурсами:

using (StreamWriter file = new StreamWriter(C:\Downloads\test.txt)) 
{ 
    // ... your code 
} 
Смежные вопросы