Чтение из текстового файла
Пространство имен System.IO содержит все необходимые классы, методы и свойства для манипуляций с каталогами и файлами (В Таблице 1 приведены основные классы).
Работа с классами DirectoryInfo и FileInfo Классы DirectoryInfo и FileInfo унаследованы от FileSystemInfo, который является запечатанными. Это значит, что Вы не можете унаследовать от него свой класс, но можете использовать свойства, определённые в нём. Таблица 2 перечисляет его свойства и методы.
Класс 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.
Работа с файлами в директории Предположим, вы хотите получить список всех файлов с расширением 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.
Запись в текстовый файл при помощи класса 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|