Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Чтение из текстового файла

Пространство имен

System.IO содержит все необходимые классы, методы и свойства для манипуляций с каталогами и файлами (В Таблице 1 приведены основные классы).

Класс Применение
Binary Reader и Writer Чтение и запись простых типов данных
Directory, File, DirectoryInfo и FileInfo Создание, удаление и перемещение файлов и директорий. Получение подробной информации о файлах, при помощи свойств, определенных в этих классах.
FileStream Доступ к файлам потоковым способом
MemoryStream Доступ к данным храняшимся в памяти
StreamWriter и StreamReader Чтение и запись текстовой информации
StringReader и StringWriter Чтение и запись текстовой информации из строкового буфера


Таблица 1 - классы в System.IO

Работа с классами DirectoryInfo и FileInfo

Классы DirectoryInfo и FileInfo унаследованы от FileSystemInfo, который является запечатанными. Это значит, что Вы не можете унаследовать от него свой класс, но можете использовать свойства, определённые в нём. Таблица 2 перечисляет его свойства и методы.

Свойства Назначение
Attributes Возвращает атрибуты файла в виде значений перечисления FileAttributes
CreationTime Возвращает время создания файла
Exists Проверяет является ли файл директорией или нет
Extension Возвращает расширение файла
LastAccessTime Возвращает время последнего доступа к файлу
FullName Возвращает полный путь к файлу
LastWriteTime Возвращает время последнего изменения файла
Name Возвращает имя данного файла
Delete() Удаляет файл. Будьте осторожны при использовании этого метода.


Таблица 2 - свойства и методы класса FileSystemInfo

Класс DirectoryInfo содержит методы для создания, перемещение и удаление каталогов. Чтобы использовать вышеприведённые свойства, необходимо создать объект класса DirectoryInfo как показано в примере:

DirectoryInfo dir1 = new DirectoryInfo(@"F:\WINNT");

После этого уже можно просмотреть свойства директории при помощи объекта dir1, как показано на фрагмент кода:

Console.WriteLine("Full Name is: {0}", dir1.FullName);

Console.WriteLine("Attributes are: {0}",

dir1.Attributes.ToString());

Можно также использовать значения перечисления FileAttributes. Они приведены в таблице 3.

Свойства Назначение
Archive Возвращает Архивный статус файла
Compressed Позволяет узнать сжат файл или нет
Directory Показывает является ли файл директорией или нет
Encrypted Показывает закодирован файл или нет
Hidden Показывает скрыт файл или нет
Offline Показывает, что данные отсутствуют
ReadOnly Показывает является ли файл только для чтения
System Показывает, является ли файл системным (возможно файл в директории Windows)

Работа с файлами в директории

Предположим, вы хотите получить список всех файлов с расширением BMP в папке F:\Pictures. Для этого можно использовать следующий код:

DirectoryInfo dir = new DirectoryInfo(@"F:\WINNT");

FileInfo[] bmpfiles = dir.GetFiles("*.bmp);

Console.WriteLine("Total number of bmp files", bmpfiles.Length);

Foreach(FileInfo f in bmpfiles)

{

Console.WriteLine("Name is: {0}", f.Name);

Console.WriteLine("Length of the file is: {0}", f.Length);

Console.WriteLine("Creation time is: {0}", f.CreationTime);

Console.WriteLine("Attributes of the file are: {0}",

f.Attributes.ToString());

}

Создание подкаталогов

Следующий фрагмент кода описывает как можно создать поддиректорию MySub в директории Sub:

DirectoryInfo dir = new DirectoryInfo(@"F:\WINNT");

try

{

dir.CreateSubdirectory("Sub");

dir.CreateSubdirectory(@"Sub\MySub");

}

catch(IOException e)

{

Console.WriteLine(e.Message);

}

Создание файлов при помощи класса FileInfo

Класс FileInfo позволяет создавать новые файлы, получать информацию, удалять и перемещать их. В этом классе также есть методы для открытия, чтения и записи в файл. В следующем примере показано, как можно создать текстовый файл и получить доступ к его информации (времени его создания, полное имя, и так далее):

FileInfo fi = new FileInfo(@"F:\Myprogram.txt");

FileStream fstr = fi.Create();

Console.WriteLine("Creation Time: {0}",f.CreationTime);

Console.WriteLine("Full Name: {0}",f.FullName);

Console.WriteLine("FileAttributes: {0}",f.Attributes.ToString());

 

//Удаление файла Myprogram.txt.

 

Console.WriteLine("Press any key to delete the file");

Console.Read();

fstr.Close();

fi.Delete();

Описание метода Open()

В классе FileInfo есть метод под названием Open () с помощью которого можно создавать файлы, подставляя в параметры значения перечислений FileMode и FileAccess. Следующий фрагмент кода показывает, как это делается:

FileInfo f = new FileInfo("c:\myfile.txt");

FileStream s = f.Open(FileMode.OpenorWrite, FileAccess.Read);

После этого, используя объект 's', можно читать и записывать в файл. В перегруженном методе Open() можно только читать из файла. Для записи в файл необходимо в параметрах открытия использовать значение FileAccess.ReadWrite. Таблицы 4 и 5 содержат возможные значения FileMode и FileAccess.

Значение Применение
Append Для открытия файла и добавления данных. Используется совместностно со значением FileAccess.Write.
Create Для создания нового файла. Если файл уже существует, то он затирается.
CreateNew Для создания нового файла. Если файл существует, то возникает исключение IOException.
Open Для открытия существующего файла
OpenOrCreate Для открытия существующего или создания нового файла. Если файл не существует, тобудет создан новый.
Truncate Для урезания существующего файла


Таблица 4 - значения FileMode

Значения Применение
Read Для чтения (получения) данных из файла
ReadWrite Для записи в или чтения из файла
Write Для записи данных в файл


Таблица 5 - значения FileAccess

Запись в текстовый файл при помощи класса StreamWriter

Текстовые данные или любую другую информацию можно записать в файл используя метод CreateText() в классе FileInfo. Однако предварительно необходимо получить валидный StreamWriter. Именно StreamWrite обеспечивает необходимую функциональность для записи в файл. Следующий пример иллюстрирует это:

FileInfo f = new FileInfo("Mytext.txt")

StreamWriter w = f.CreateText();

w.WriteLine("This is from");

w.WriteLine("Chapter 6");

w.WriteLine("Of C# Module");

w.Write(w.NewLine);

w.WriteLine("Thanks for your time");

w.Close();

Чтение из текстового файла

Для чтения из текстового файла можно воспользоваться классом StreamReader. Для этого необходимо указать имя файла в статическом методе OpenText() класса File. Следующий пример считывает содержимое файла, которое было записано в предыдущем примере:

Console.WriteLine("Reading the contents from the file");

StreamReader s = File.OpenText("Mytext.txt");

string read = null;

while ((read = s.ReadLine())!= null)

{

Console.WriteLine(read);

}

s.Close();

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...