В этом посте будет обсуждаться, как прочитать весь текст из файла в строку в C#.
1. Использование File.ReadAllText()
метод (System.IO
)
Рекомендуемым решением для чтения всего текста в файле в строку является использование File.ReadAllText() метод. В следующем примере кода показано его использование для отображения содержимого файла.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
using System; using System.IO; public class Example { public static void Main() { string fileName = @"C:\some\path\file.txt"; string text = File.ReadAllText(fileName); Console.WriteLine(text); } } |
The File.ReadAllText()
метод автоматически пытается определить кодировку файла. У него есть перегруженная версия, которая принимает кодировку файла. Он бросает IOException
если при открытии указанного файла возникает ошибка ввода-вывода и FileNotFoundException
если исходный файл не найден.
2. Использование StreamReader.ReadToEnd()
метод (System.IO
)
Другим решением для чтения всего файла и копирования содержимого файла в строку является использование StreamReader.ReadToEnd() метод.
Следующий код получает StreamReader
экземпляр с использованием File.OpenText
метод, а затем использует ReadToEnd()
метод для чтения всего файла до конца за одну операцию. Поскольку StreamReader
объект объявляется и создается в операторе using, Dispose()
метод автоматически вызывается для сброса и закрытия потока.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using System; using System.IO; public class Example { public static void Main() { string fileName = @"C:\some\path\file.txt"; using (StreamReader streamReader = File.OpenText(fileName)) { string text = streamReader.ReadToEnd(); Console.WriteLine(text); } } } |
The File.OpenText()
метод открывает существующий UTF-8
закодированный текстовый файл для чтения. Чтобы открыть файл с другой кодировкой символов, используйте StreamReader
конструктор класса, который может принимать определенную кодировку символов.
Следующий пример получает новый StreamReader
в формате ASCII из файла с обнаружением метки порядка байтов как истинной:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using System; using System.IO; public class Example { public static void Main() { string fileName = @"C:\some\path\file.txt"; using (StreamReader streamReader = new StreamReader(fileName, Encoding.ASCII, true)) { string text = streamReader.ReadToEnd(); Console.WriteLine(text); } } } |
Это все о чтении всего файла в строку с помощью C#.