Класс File предоставляет почти те же возможности, которые есть в классе Filelnfo, но использует для этого статические методы. Так же как и класс Filelnfo, класс File предоставляет методы AppendText (), Create (), CreateText (), Open (), OpenRead (), OpenWrite () и OpenText (). Фактически во многих случаях классы File и Filelnfo могут использоваться взаимозаменяемо. В качестве демонстрации можно приведенные ранее примеры для класса FileStream переписать с использованием класса File:
// Получаем объект FileStream с помощью File. Create ().
FileStream fs = File. Create (@" C: Test. dat");
// Получаем объект FileStream с помощью File. Open ().
FileStream fs2 = File. Open (@" C: Test2. dat", FileMode. OpenOrCreate, FileAccess.ReadWrite.FileShare.None);
// Получаем объект FileStream только для чтения FileStream readOnlyStream = File. OpenRead (@" Test3. dat");
// Получаем объект FileStream только для записи FileStream writeOnlyStream = File. OpenWrite (@" Test4. dat");
// Получаем объект StreamReader.
StreamReader sreader = File. OpenText (@" C: oot. ini");
// Получаем объект StreamReader для нового файла StreamWriter swriter = File. CreateText (@" C: Test3. txt");
// Получаем объект StreamReader для добавления текста StreamWriter swAppend = File. AppendText (@" C: FinTst. txt");
Дополнительные методы класса File
Класс File также поддерживает несколько специальных методов, которые поясняются в табл. 9.5, которые значительно упрощают процесс чтения и записи текстовых данных.
Таблица 9.5.
Методы класса File
Метод. | Описание. |
ReadAllBytes (). | открывает указанный файл, возвращает бинарные данные в виде массива типа byte и затем закрывает файл. |
ReadAllLines (). | открывает указанный файл, возвращает символьные данные в виде массива строк и затем закрывает файл. |
ReadAllText (). | открывает указанный файл, возвращает символьные данные в виде одной строки и затем закрывает файл. |
WriteAllBytes (). | открывает указанный файл, записывает массив типа byte и затем закрывает файл. |
WriteAllLines (). | открывает указанный файл, записывает массив строк и затем закрывает файл. |
WriteAllTextQ. | открывает указанный файл, записывает символьную строку и затем закрывает файл. |
Использование этих методов класса File позволяет читать и записывать порцию данных с помощью нескольких операторов.
Например, в следующем примере символьные данные записываются в новый файл:
string[] myTasks = {" Перевести текст" ," Позвонить маме" };
// Запись всех данных в файл.
File.WriteAllLines (@" C: asks. txt", myTasks);
// Чтение всех записанных данных и вывод их на экран foreach (string task in File. ReadAIILines (@" C: asks. txt")) Console. WriteLine («Нужно сделать: {0}», task);