ExpC_Module 18 ru_1.ppt
- Количество слайдов: 34
Модуль 18 Потоки и файлы
Обзор модуля В этом модуле вы изучите: n Пространство имен System. IO n n Обработку потоков Обработку файлов Класс Directory. Info Изучение C#/ Модуль 18/ 2 из 34
Занятие 1 - Пространство имен “System. IO” На первом занятии, Пространство имен System. IO, вы научитесь: n n Объяснять необходимость файлов и потоков. Описывать пространтсво имен System. IO и его значение. Изучение C#/ Модуль 18/ 3 из 34
Потоки и файлы n n Термин “файл” обычно связан с информацией, хранящейся на диске или в памяти. Данные для длительного хранения размещаются в файлах. Поток - это текущие данные. Потоки могут быть использованы для передачи или получения информации из памяти, сети, web, строк и других источников. Изучение C#/ Модуль 18/ 4 из 34
Необходимость файлов и потоков n n n Они помогают сохранить данные на длительное время после завершения программы или выключения компьютера. Содержимое может быть повторно использовано той же или другой программой. Они позволяют обрабатывать большие объемы данных в удобной форме; потоки могут использоваться для хранения и получения данных. Изучение C#/ Модуль 18/ 5 из 34
Пространство имен “System. IO” n n Язык программирования C# предоставляет пользователям изолированное пространство имен System. IO для управления файлами и потоками. Пространство имен System. IO предоставляет пользователю массу классов для файлового/потокового ввода/вывода. Оно содержит классы, которые позволяют читать и записывать файлы и потоки данных, а также классы, предоставляющие базовую поддержку файлов и каталогов. Оно предоставляет такие классы, как File и Directory, которые позволяют пользователям оперировать файлами и каталогами. Изучение C#/ Модуль 18/ 6 из 34
Занятие 2 – Обработка потоков На втором занятии, Обработка потоков, вы научитесь: n Перечислять часто используемые классы и интерфейсы в пространстве имен System. IO. n Объяснять классы Binary. Reader и Binary. Writer. n Описывать класс Stream и его классы-наследники. n Описывать класс Text. Reader. n Описывать класс Text. Writer. Изучение C#/ Модуль 18/ 7 из 34
Классы и интерфейсы пространства имен “System. IO” Класс Описание Пространство имен System. IO содержит Binary. Reader Читает примитивные типы данных как двоичные значения в классы, облегчающие чтение и запись данных в указанной кодировке. Binary. Writer Записывает примитивные типы данных в поток и поддерживает потоки и файлы. n запись строк в указанной кодировке. Directory Предоставляет методы для создания, перемещения и перечисления каталогов и подкаталогов. также содержит классы, предоставляющие Оно Предоставляет экземпляры методов для создания, Directory. Info доступ к каталогам. перемещения и перечисления каталогов и подкаталогов. n File Предоставляет статические методы для создания и управления файлами. File. System. Info Содержит общие методы управления файлами и каталогами. Stream Представляет последовательности байт. Text. Reader Предоставляет механизм, который может читать последовательности символов. Text. Writer Предоставляет механизм, который может писать последовательности символов. Изучение C#/ Модуль 18/ 8 из 34
Класс “Binary. Reader” n n n Close()- Используется, чтобы данных текущий Используется для чтения двоичных закрыть из файла. сеанс чтения и освободить поток, из которого производилось чтение данных. Некоторые методы, поддерживаемые Binary. Reader: n Read()- Используется для чтения символов из n Close() n указанного потока. Read() n Read. Decimal()- Читает значение decimal из n Read. Decimal() n указанного потока. Read. Byte() n Read. String() n Read. Byte()- Читает значение byte из указанного потока. n Read. String()- Читает строку из указанного потока. Изучение C#/ Модуль 18/ 9 из 34
Класс “Binary. Writer” n n n Close() –используется для закрытия текущего Используется для записи двоичных данных из Пример потока с C# в заданный поток. переменныхдвоичными данными, а также закрывает Binary. Writer obj. Binary. Write = new текущий Binary. Writer(File. Create(“C: /Test. bin”)); Byte b = 45; Некоторые методы, поддерживаемые string str 1 = “Billy”; n obj. Binary. Write(b); Flush()- он Binary. Writer: очищает все буферы для текущего obj. Binary. Write(str 1); n obj. Binary. Write. Close(); Close() сеанса записи и записывает все Binary. Reader obj. Binary. Read = new n буферизированные данные на устройство. Flush() Binary. Reader(File. Open. Read(“C: /Test. bin”)); n Byte b 2 = obj. Binary. Read. Byte(); Write() string str 2= obj. Binary. Read. String(); n Console. Write. Line(str 2); Write()- перегруженный метод, он записывает Console. Write. Line(b 2); данные в текущий поток. obj. Binary. Read. Close(); Изучение C#/ Модуль 18/ 10 из 34
Класс “Stream” - Используется для чтения и записи данных в память вместо диска. class Program Один из самых важных классов в пространстве { n Buffered. Stream - Используется для чтения и static void Main(string[] args) имен IO. { записи в буфер. Memory. Stream obj. Mem. Str = new Memory. Stream(); Buffered. Stream obj. Buff. Str = new n File. Stream - Используется для выполнения Некоторые. Buffered. Stream(obj. Mem. Str); над файлами. классы, производные obj. Buff. Str. Write. Byte((byte)100); операций чтения и записи от этого класса: bj. Buff. Str. Position=0; n Memory. Stream byte[] Arr = {1, 2, 3}; n Network. Stream - Используется для отправки и n Buffered. Stream obj. Buff. Str. Read(Arr, 0, 2); получения данных через сеть. for(int i=0; i<3; i++) n File. Stream { n Crypto. Stream - Используется {0}”, Arr[i]); } потока Console. Write. Line(“The value is для связи n Network. Stream Console. Write. Line(“The return value for Read. Byte() данных сis{0}”, obj. Buff. Str. каким-либо криптографическим n Crypto. Stream } объектом с целью шифрования данных. } n n n Memory. Stream Пример } Изучение C#/ Модуль 18/ 11 из 34
Класс “Text. Reader” 1 -2 n n n Базовый абстрактный класс для классов Stream. Reader и String. Reader. Он используется для чтения последовательных серий символов. Разница между классами Stream и String. Reader в том, что класс Stream читает и записывает байты, а класс String. Reader читает символы из потока байт. Изучение C#/ Модуль 18/ 12 из 34
Класс “Text. Reader” 2 -2 n В таблице Пример показаны некоторые методы класса Text. Reader: Console. Write. Line(“Enter string: “); Console. Write(“Enter a the file name: “); string File. Name = Console. Read. Line(); String str = Console. Read. Line(); Метод Описание if (!File. Exists(File. Name)) char[] b = new char[str. Length]; { String. Reader sr = new String. Reader(str); Read() Читает символ из потока байт. Console. Write. Line(“{0} does not exist!”, File. Name); sr. Read(b, 0, str. Length); return; Read. Line() Читает строку символов из потока байт. Console. Write. Line(b); } Read. To. End() Читает байты File. Open. Text(File. Name); Stream. Reader obj. Stream. Read =из потока, начиная с текущей String input; позиции и до конца потока. while ((input = obj. Stream. Read. Line()) != null) Возвращает следующий символ, доступный в Peek() { потоке. Console. Write. Line(input); } Console. Write. Line(“The end of the stream is reached. ”); obj. Stream. Read. Close(); Изучение C#/ Модуль 18/ 13 из 34
Класс “Text. Writer” nn ВБазовый абстрактный класс для классов, которые таблице показаны некоторые методы класса Пример Text. Writer: могут быть использованы для “); Console. Write(“Enter the file name: записи string Filename = Console. Read. Line(); последовательностей символов. Метод Описание if (!File. Exists(Filename)) { Write() Этот метод используется для записи символов в Console. Write. Line(“{0} does not exist!”, Filename); поток и String. Writer - это два n Stream. Writer и перемещает текущую позицию к классаreturn; следующему символу. } наследника класса Text. Writer. Write. Line() Этот метод записывает строку символов в поток. Stream. Writer obj. Stream. Write = File. Append. Text(Filename); Он Console. Write(“Enter a string to be конца строки. the file: ”); также добавляет символ written to String Str = Console. Read. Line(); n obj. Stream. Write. Line(Str); Stream. Writer записывает символы в поток в obj. Stream. Write. Close(); указанной кодировке. Изучение C#/ Модуль 18/ 14 из 34
Занятие 3 – Обработка файлов На третьем занятии, Обработка файлов, вы научитесь: n Объяснять класс File, его методы и свойства. Формулировать процедуры для создания файлов, используя классы в пространстве имен System. IO. n Формулировать процедуры для копирования и перемещения файлов, используя классы в пространстве имен System. IO. n Формулировать процедуры для удаления файлов, используя классы в пространстве имен System. IO. n Объяснять класс File. Info. n Изучение C#/ Модуль 18/ 15 из 34
Класс “File” n n n Представлен в пространстве имен System. IO. Предоставляет статические методы для создания, копирования, удаления, перемещения и открытия файлов. Содержит набор методов, предоставляющих доступ к информации о файле. Изучение C#/ Модуль 18/ 16 из 34
Методы класса “File” n Статические методы класса File важные В таблице перечислены наиболее выполняют методы класса File: проверку правил безопасности при каждом вызове. Метод Описание Copy Этот метод используется для копирования содержимого исходного файла в конечный файл. Если конечный файл не существует, то создается новый файл, с указанным именем и по указанному пути. Create Этот метод используется для создания файла по указанному пути. Delete Этот метод используется для удаления файла по указанному пути. Exists Этот метод используется для проверки существования файла с указанным именем и по указанному пути. Move Этот метод используется для перемещения указанного файла в новое местоположение. Get. Attributes Этот метод используется для получения атрибутов файла. Get. Creation. Time Этот метод используется для получения времени создания или изменения заданного файла или каталога. Изучение C#/ Модуль 18/ 17 из 34
Создание файла n Метод Create() класса File используется Пример для filename = нового файла. stringсоздания@”C: Student. txt”; try { n n // Создает файл. Метод Create() в качестве параметра File. Stream fs = File. Create(filename); //Подготовка к записи которому принимает путь, потекста в файл должен быть Byte[] info = new UTF 8 Encoding(true). Get. Bytes(“This создан файл, и имя создаваемого файла. file was programmatically created using C#”); //Записывает данные fs. Write(info, 0, info. Length); //очищает и закрывает File. Stream fs. Flush(); fs. Close(); Console. Write. Line(filename + “ has been created. ”); Объект File. Stream может быть использован для записи и чтения из файла. } Изучение C#/ Модуль 18/ 18 из 34
Копирование файла n Метод Пример Copy() класса File может быть использован = @”c: Student. txt”; string filename для копирования файла в новое string filename 2 = @”d: New. Students. txt”; место. try { n // Метод. Копирует файл. filename 2); параметра: Copy() принимает два File. Copy(filename, Console. Write. Line(“{0} has been copied to {1}”, исходный файл для копирования и путь, по filename, filename 2); которому будет скопирован файл. Console. Read. Line(); } catch (Exception ex) { Console. Write. Line(“Error Occured : “ + ex. Message); Console. Read. Line(); } Изучение C#/ Модуль 18/ 19 из 34
Перемещение файла n Метод Пример Move() класса File используется для перемещения @”d: Student. Details. txt”; string File. Name =файла. string File. Name. New = @”c: New. Student. Details. txt”; try n { Этот метод похож на метод Copy(). // Копирует файл File. Move(File. Name, File. Name. New); Console. Write. Line(“{0} has been moved to [1}”, File. Name. New); Console. Read. Line(); } catch (Exception ex) { Console. Write. Line(“Error Occured : “ + ex. Message); Console. Read. Line(); } Изучение C#/ Модуль 18/ 20 из 34
Удаление файла n Метод Пример Delete() класса File используется для удаления файла. string filename = @”c: Student. Details. txt”; try { n File. Delete(filename); Метод Delete() принимает один параметр - путь Console. Write. Line(“{0} has been Deleted!”, filename); к удаляемому файлу. Console. Read. Line(); } catch (Exception ex) { Console. Write. Line(“Error Occured : “ + ex. Message); Console. Read. Line(); } Изучение C#/ Модуль 18/ 21 из 34
Класс “File. Info” n Он используется для: n В таблице перечислены часто используемые Создания файловметоды класса File. Info: свойства и Копирования файлов Метод/Свойство Описание Перемещения файлов Create() Это метод используется для создания файла. Удаления файлов Copy. To() Это метод используется для копирования Дополнения файлов существующего файла. Delete() Это метод используется для удаления файла. Open() Этот метод используется для открытия файла с различными правами чтения/записи и общего доступа. Creation. Time Это свойство содержит время создания файла. Last. Access. Time Это свойство содержит время последнего доступа к файлу. Last. Write. Time Это свойство содержит время последней записи в файл. Изучение C#/ Модуль 18/ 22 из 34
Методы класса “File. Info” n Библиотека базового класса. NET Framework Пример содержит другой класс с именем File. Info. string path = файл //Копирует @”c: New. File. txt”; try obj. File. Info. Copy. To(@”C: My Documents”, true); Console. Write. Line(@”{0} Copied to C: My. Documents”, path); { //Выводит время создания файла //Создает объект File. Info n Используются для выполнения операций, Console. Write. Line(@”{0} was created on {1}”, path, obj. File. Info = Creation. Time. To. String()); аналогичных классу File. new File. Info(@”C: test. txt”); //Создает файл //Выводит время последнего доступа к файлу File. Stream obj. File. Stream = obj. File. Info. Create(); Console. Write. Line(@”{0} was last accessed on {1}”, //Подготовка к записи текста в файл path, obj. File. Info. Last. Access. Time. To. String()); //Выводит время последней записи в файл Byte[] info = new UTF 8 Encoding(true). Get. Bytes(“This n Предоставляет методы для создания, копирования, Console. Write. Line(@”{0} was last written to on. C#”); path, file was programmatically created using {1}”, obj. File. Info. Last. Write. Time. To. String()); удаления, перемещения и открытия файлов. 0, //Записывает данные obj. File. Stream. Write(info, //Удаляет файл info. Length); obj. File. Info. Delete(); //очищает и закрывает File. Stream } obj. File. Stream. Flush(); n Используется для создания объектов File. Stream. obj. File. Stream. Close(); Изучение C#/ Модуль 18/ 23 из 34
Занятие 4 – Класс “Directory” На четвертом занятии, Класс Directory, вы научитесь: n Описывать класс Directory. n n n Описывать процедуру создания каталога, используя класс Directory. Описывать процедуру переименования или перемещения каталога, используя класс Directory. Описывать, как удалить каталог, используя методы класса Directory. Изучение C#/ Модуль 18/ 24 из 34
Класс “Directory” n В таблицев структурировании и организации Помогает перечислены наиболее часто используемые методы класса Directory: файлов на диске. Метод n Описание Create. Directory Создает все методы для создания, Содержит статические каталоги по указанному пути. Delete Удаляет указанный каталог. перемещения и перечисления каталогов и Exists подкаталогов. Проверяет, существует ли указанный каталог. Get. Current. Directory Возвращает текущий рабочий каталог. Get. Directories Возвращает имена подкаталогов. Move Перемещает файл или каталог (вместе с содержимым) в новое место. Get. Files Возвращает имена файлов в указанном каталоге. Set. Current. Directory Устанавливает заданный каталог как рабочий каталог для приложения. Изучение C#/ Модуль 18/ 25 из 34
Создание класса “Directory” n Метод Пример Create. Directory() класса Directory используется для создания каталога. string path = @”c: Employee”; try { n n //Создает каталог Directory. Info obj. Directory. Info =Directory. Create. Directory(path); //Выводит дату и время создания каталога Console. Write. Line(path + “ created on “ + obj. Directory. Info. Creation. Time. To. String()); //Вызывает метод для создания нового файла string filenames = @”C: Employee. Details. txt”; File. Stream obj. File. Stream = File. Create(filenames); //Получает файлы каталога string[] files = Directory. Get. Files(path); //Выводит список файлов каталога Console. Write. Line(“n. Displaying files in “ +path); foreach (string filename in files) { Console. Write. Line(filename); } Он принимает один параметр. Он возвращает объект Directory. Info, который может быть использован для работы с только что созданным каталогом. } Изучение C#/ Модуль 18/ 26 из 34
Переименование каталога n Метод Пример Move() класса Directory используется для перемещения или переименования каталога. string Source. Path = @”c: Employee”; string Destination. Path = @”c: New. Employee”; try { //Перемещает каталог Directory. Move(Source. Path, Destination. Path); Console. Write. Line(Source. Path + “ has been moved to ” + Destination. Path); Console. Read. Line(); } Изучение C#/ Модуль 18/ 27 из 34
Удаление каталога n Метод Пример Delete() класса Directory используется для удаления каталога. string path = @”c: New. Employee”; try { //Удаляет каталог Directory. Delete(path, true); Console. Write. Line(path + “ has been deleted. ”); Console. Read. Line(); } catch(Exception ex) { Console. Write. Line(“Error Occured: “ + ex. Message); Console. Read. Line(); } Изучение C#/ Модуль 18/ 28 из 34
Занятие 5 – Класс “Directory. Info” На последнем занятии, Класс Directory. Info, вы научитесь: n Резюмировать возможности класса Directory. Info. n Перечислять и описывать методы и свойства класса Directory. Info Изучение C#/ Модуль 18/ 29 из 34
Класс “Directory. Info” n n n Все методы являются статическими и могут быть вызваны без создания экземпляра класса. Содержит только экземпляры методов. Статические методы класса Directory выполняют проверку безопасности для каждого метода. Изучение C#/ Модуль 18/ 30 из 34
Методы и свойства n Каталог может быть создан, перемещен и удален с использованием класса Directory. Info. Пример try n { В таблице перечислены часто используемые //Устанавливает пути к источнику и назначению свойства и = @”C: Student”; методы класса Directory. Info: string path string dest. Path = @”C: New. Student”; Метод //Создает объект Directory. Info Описание Directory. Info di = new Directory. Info(path); Extension Возвращает строковое представление расширенного пути к //Создает каталог файлу. di. Create(); Console. Write. Line(“{0} created каталогу path, di. Creation. Time. Full. Name Возвращает полный путь кon {1}”, или файлу. To. String()); Parent Возвращает родительский каталог для указанного каталога. //Перемещает каталог di. Move. To(dest. Path); Create() Создает каталог. Console. Write. Line(“{0} moved to {1}”, path, dest. Path); //Удаляет каталог Move. To() Перемещает экземпляр Directory. Info и его содержимое по di. Delete(); пути. новому Console. Write. Line(“{0} has been deleted. ”, dest. Path); } Delete() Удаляет Directory. Info и его содержимое по указанному пути. Изучение C#/ Модуль 18/ 31 из 34
Заключение 1 -3 n n Пространство имен System. IO n Термин «файл» связан с любой информацией, которая хранится на жестких дисках или в памяти. n Потоки данных могут использоваться для отправки или получения информации из памяти, сети, web, строк и других мест. n Пространство имен System. IO предоставляет классы для файлов/потоков и ввода/вывода. Обработка потоков n Класс Binary. Reader используется для чтения двоичных данных из файла. n Класс Binary. Writer используется для записи двоичных данных в файл. n Text. Reader и Text. Writer - это базовые абстрактные классы для классов, которые могут использоваться для чтения или записи последовательностей символов. Изучение C#/ Модуль 18/ 32 из 34
Заключение 2 -3 n n Обработка файлов n Класс File предоставляет статические методы для создания, копирования, удаления, перемещения и открытия файлов. n Класс File. Info используется для таких операций, как копирование, перемещение, переименование, создание, удаление и добавления файлов. Класс Directory n Класс Directory содержит статические методы для создания, перемещения и перечисления каталогов и подкаталогов. n Метод Create. Directory() используется для создания каталогов. n Метод Move()класса Directory используется для перемещения или переименования каталога. Изучение C#/ Модуль 18/ 33 из 34
Заключение 3 -3 n Класс Directory. Info содержит только экземпляры методов n Каталог может быть создан, перемещен и удален с использованием класса Directory. Info. Изучение C#/ Модуль 18/ 34 из 34
ExpC_Module 18 ru_1.ppt