2017-01-17 9 views

ответ

11
FileStream fileStream = new FileStream("file.txt", FileMode.Open); 
using (StreamReader reader = new StreamReader(fileStream)) 
{ 
    string line = reader.ReadLine(); 
} 

Использование System.IO.FileStream и System.IO.StreamReader. Вы можете использовать System.IO.BinaryReader или System.IO.BinaryWriter.

+0

посоветуйте, кажется, нет FileStream.Lock/.Unlock – user3791372

+0

Было значительно быстрее прочитать весь файл в массиве, а затем обработать данные вместо обработки каждой строки по мере ее чтения. Дополнительные сведения см. В этой статье: http://cc.davelozinski.com/c-sharp/the-fastest-way-to-read-and-process-text-files –

2

Чтобы написать:

using (System.IO.StreamWriter file = 
new System.IO.StreamWriter(System.IO.File.Create(filePath).Dispose())) 
{ 
    file.WriteLine("your text here"); 
} 
+0

Возможная утечка памяти на 'System.IO.File.Create (filePath)' – ManIkWeet

+0

Не могли бы вы дать мне ссылку или некоторые причины @ManIkWeet? Это стандартный учебник от MS. –

+1

'System.IO.File.Create (filePath)' создает 'FileStream', который реализует' IDisposable'. Я не уверен, что утилизация «StreamWriter» также предоставляет «FileStream», что он обертывается. При просмотре декомпилированного кода я вижу, что он вызывает 'Close()' на завернутом 'Stream', но не' Dispose() '. Разумеется, сборщик мусора, вероятно, удалит завернутый «поток» на операцию «Finalize()», но это может быть неожиданным воздействием на производительность. – ManIkWeet