Скачать презентацию Программирование на языках высокого уровня Ввод-вывод в Java Скачать презентацию Программирование на языках высокого уровня Ввод-вывод в Java

Тема 4 (Потоки).ppt

  • Количество слайдов: 9

Программирование на языках высокого уровня Ввод-вывод в Java Программирование на языках высокого уровня Ввод-вывод в Java

Понятие потока данных n Данные извлекаются из источника (ввод) и пересылаются n n потребителю Понятие потока данных n Данные извлекаются из источника (ввод) и пересылаются n n потребителю (вывод). n сетевое соединение, n буфер памяти, n файл на диске. Поток данных (stream) – логическая сущность, которая потребляет или производит информацию. Поток данных – абстрактное представление упорядоченной последовательности данных. Поток связывается с физическим устройством. Классы и интерфейсы языка, позволяющие работать с потоками ввода-вывода единым образом, не задумываясь о низкоуровневой организации, собраны в пакете java. io

Классификация потоков n Байтовые потоки используются в операциях с информацией, представленной в двоичном (бинарном) Классификация потоков n Байтовые потоки используются в операциях с информацией, представленной в двоичном (бинарном) виде. потоки ввода (Input Streams) n потоки вывода (Output Streams) n n Символьные потоки – последовательности 16 -битовых Unicodeсимволов. потоки чтения (Readers) n потоки записи (Writers) n

Основные группы классов и интерфейсов java. io n Классы общего назначения: Input. Stream, Output. Основные группы классов и интерфейсов java. io n Классы общего назначения: Input. Stream, Output. Stream Reader, Writer (содержат важные методы read(), write()) n Специализированные классы: n Для вывода значений простых типов и строк: Data. Input. Stream, Data. Output. Stream; n Для платформно-независимой обработки файловых данных: File. Input. Stream, File. Output. Stream, File. Reader, File. Writer; n Канальные потоки: Piped. Input. Stream, Piped. Output. Stream, Piped. Reader, Piped. Writer; n Фильтрованные потоки: Filter. Input. Stream, Filter. Output. Stream, Filter. Reader, Filter. Writer; n Буферизированные потоки: Buffered. Input. Stream, Buffered. Output. Stream, Buffered. Reader, Buffered. Writer n Потоки для преобразования символьного потока в байтовый и обратно: Input. Stream. Reader и Output. Stream. Writer

Буферизированные потоки n Обеспечивается присоединение к потоку буфера (области n n n памяти) для Буферизированные потоки n Обеспечивается присоединение к потоку буфера (области n n n памяти) для промежуточного хранения читаемых или записываемых данных. Обращение к физическому устройству не происходит при каждой операции read() или write(). Это ускоряет выполнение ввода-вывода. Конструкторы: n с указанием размера буфера и базового потока; n с указанием только базового потока (размер буфера устанавливается по умолчанию). Чтение: n читаются данные из буфера; n если буфер пуст, читаются порция данных с диска в буфер и повторяется первый пункт. Запись: n данные записываются в буфер; n если буфер переполнен, все содержимое буфера записывается на диск и повторяется первый пункт. flush() – освобождение потока.

Фильтрованные потоки n Позволяют применить к данным своего внутреннего потока операции предварительной обработки (фильтрации). Фильтрованные потоки n Позволяют применить к данным своего внутреннего потока операции предварительной обработки (фильтрации). n Внутренним потоком фильтрованного потока (передаваемого в конструкторе) может быть n поток общего назначения n или специализированный поток, n в том числе другой фильтрованный поток (многошаговая фильтрация). n Классы Filter*** - абстрактные: для использования фильтрации необходимо наследовать выбранный класс и переопределить его метод read() или write().

Канальные потоки n Позволяют связывать входные и выходные потоки. n Используются парами, пара потоков Канальные потоки n Позволяют связывать входные и выходные потоки. n Используются парами, пара потоков (чтения и записи или ввода и вывода) называется каналом. n Данные, переданные в один поток (выходной), являются входными для другого. n Между двумя потоками канала предусмотрен буфер (размер задается автоматически). n Используются для обмена данными между разными потоками вычислений.

Сериализация n Сериализация – преобразование объекта в последовательность данных (байтов) n Десериализация – восстановление Сериализация n Сериализация – преобразование объекта в последовательность данных (байтов) n Десериализация – восстановление объекта из последовательности байтов. n Класс сериализуемого/десериализуемого объекта должен реализовывать интерфейс Serializable n Классы: Object. Output. Stream, Object. Input. Stream содержат методы n n void write. Object(Serializable s) Serializable read. Object()

Класс File n Предназначен для получения и управления информацией, связанной с файлом на диске: Класс File n Предназначен для получения и управления информацией, связанной с файлом на диске: n n n права доступа; время и дата создания и изменения; путь в иерархии каталогов и т. д. n Каталог в java – тоже объект класса File, для которого можно просматривать список содержимого n n Все содержимое: String[] list() Файлы и каталоги, отобранные по некоторому критерию – фильтру: String[] list(Filename. Filter f) n Filename. Filter – интерфейс, содержащий метод accept(File f, String s) n Поддерживается интерфейс Comparable