Содержание
- 2. Обмен данными Работа с файлами является частным случаем процессов обмена данными между программой и её внешним
- 3. Потоки Обмен данными между программой и внешним окружением основан на концепции потока Поток – это абстракция,
- 4. Байтовые потоки Минимальной единицей данных, передаваемых в операциях ввода-вывода является байт Потоки, оперирующие байтами, называются байтовыми
- 5. Входные и выходные потоки Существуют два типа потоков: входные и выходные Входные потоки используются для чтения
- 6. Специализированные потоки Для различных видов источников данных, используемых программой, определены специализированные наследники класса Stream: FileStream -
- 7. Буферизация потоков Для повышения производительности компьютера при обменах данными программ с внешним окружением применяется буферизация потоков
- 8. Буферизация потоков Программа записывает данные в буфер вывода и читает данные из буфера ввода В этом
- 9. Работа с файлами Работа с файлами – наиболее традиционный способ использования постоянной памяти Для этого в
- 10. Классы, использующие файловую систему 06.04.2018
- 11. Некоторые потоковые классы 06.04.2018
- 12. Классы файлового ввода-вывода В классе FileStream определено несколько конструкторов; чаще всего используется конструктор: FileStream(string filename, FileMode
- 13. Режимы файлового потока Значения параметра mode определяются перечислением FileMode, определенным в классе System.IO: CreateNew = 1
- 14. Режимы файлового потока ОpenOrCreate = 4 - открытие, если файл существует, в противном случае создание нового
- 15. Исключения Если попытка открыть файл оказалась неуспешной, то генерируется одно из исключений: FileNotFoundException - файл невозможно
- 16. Исключения ArgumentException - некорректен параметр mode; SecurityException - пользователь не обладает правами доступа; DirectoryNotFoundException - некорректно
- 17. Другая версия конструктора Версия конструктора, позволяющая ограничить доступ к файлу только чтением или только записью: FileStream(string
- 18. Операции чтения-записи После открытия файла внутренний указатель потока устанавливается на его начальный байт Для чтения очередного
- 19. Операции чтения-записи Если достигнут конец файла, то метод ReadByte() возвращает значение -1 Для побайтовой записи данных
- 20. Применение байтовых потоков Байтовые потоки удобно использовать при «внутренних» операциях с файлами, которые не связаны с
- 21. Классы-адаптеры Для преобразования потока байт в последовательность значений того или иного типа используются классы-адаптеры Различают два
- 22. Текстовые адаптеры Такие преобразования особенно актуальны в случае, когда обмен данными происходит с использованием пользовательского интерфейса,
- 23. Символьные потоки Реализация методов этих абстрактных классов представлена в их классах-наследниках: StreamReader и StringReader, наследующих TextReader;
- 24. Создание символьных потоков Чтобы создать символьный поток, нужно поместить объект класса Stream (например, FileStream) "внутрь" объектов
- 25. Поток StreamWriter Предназначен для организации выходного символьного потока В нем определено несколько конструкторов, один из них
- 26. Типы исключений Этот конструктор может генерировать исключения следующих типов: ArgumentException, если поток stream не открыт для
- 27. Второй вариант конструктора Позволяет открыть поток сразу через обращения к файлу: StreamWriter(string name); Параметр name определяет
- 28. Третий вариант конструктора Определяет режим записи – дозапись или перезапись StreamWriter(string name, bool appendFlag); Параметр appendFlag
- 29. Поток StreamReader Предназначен для организации входного символьного потока В нем определено несколько конструкторов, один из них
- 30. Типы исключений Этот конструктор генерирует исключение типа ArgumentException, если поток stream не открыт для ввода Например,
- 31. Второй вариант конструктора Позволяет открыть поток сразу через обращения к файлу: StreamReader(string name); Параметр name определяет
- 32. Чтение данных Для построчного чтения данных из символьного потока предназначен метод ReadLine() Этот метод возвращает очередную
- 33. Чтение кириллицы В C# символы реализуются кодировкой Unicode Для того, чтобы можно было обрабатывать текстовые файлы,
- 34. Чтение кириллицы Здесь в качестве второго параметра указан вызов статического метода GetEncoding() класса Encoding, который определен
- 35. Предопределенные потоки К символьным потокам относятся и так называемые предопределенные потоки ввода-вывода, используемые в консольных приложениях:
- 36. Двоичные адаптеры Во многих приложениях требуется производить обмен числовыми данными, сохраняя их внутреннее представление В этом
- 37. Двоичные потоки Последовательности числовых данных в их внутреннем представлении называются двоичными потоками, а файлы, из которых
- 38. Создание двоичного потока Двоичный поток открывается на основе базового потока (например, FileStream), при этом двоичный поток
- 39. Произвольный доступ Двоичные файлы являются файлами с произвольным доступом; нумерация элементов в двоичном файле ведется с
- 40. Значения параметра pos 06.04.2018
- 41. Поток BinaryWriter Класс BinaryWriter поддерживает произвольный доступ к выходному двоичному потоку, обеспечивая, в частности, возможность выполнять
- 42. Методы потока BinaryWriter 06.04.2018
- 43. Поток BinaryReader Класс BinaryReader поддерживает последовательный доступ к входному двоичному потоку, обеспечивая, в частности, возможность выполнять
- 44. Методы потока BinaryReader 06.04.2018
- 46. Скачать презентацию