🗊 Презентация Механизмы ввода и вывода

Категория: Образование
Нажмите для полного просмотра!
Механизмы ввода и вывода, слайд №1 Механизмы ввода и вывода, слайд №2 Механизмы ввода и вывода, слайд №3 Механизмы ввода и вывода, слайд №4 Механизмы ввода и вывода, слайд №5 Механизмы ввода и вывода, слайд №6 Механизмы ввода и вывода, слайд №7 Механизмы ввода и вывода, слайд №8 Механизмы ввода и вывода, слайд №9 Механизмы ввода и вывода, слайд №10 Механизмы ввода и вывода, слайд №11 Механизмы ввода и вывода, слайд №12 Механизмы ввода и вывода, слайд №13 Механизмы ввода и вывода, слайд №14 Механизмы ввода и вывода, слайд №15 Механизмы ввода и вывода, слайд №16 Механизмы ввода и вывода, слайд №17 Механизмы ввода и вывода, слайд №18 Механизмы ввода и вывода, слайд №19 Механизмы ввода и вывода, слайд №20 Механизмы ввода и вывода, слайд №21 Механизмы ввода и вывода, слайд №22 Механизмы ввода и вывода, слайд №23 Механизмы ввода и вывода, слайд №24 Механизмы ввода и вывода, слайд №25 Механизмы ввода и вывода, слайд №26 Механизмы ввода и вывода, слайд №27 Механизмы ввода и вывода, слайд №28 Механизмы ввода и вывода, слайд №29 Механизмы ввода и вывода, слайд №30 Механизмы ввода и вывода, слайд №31 Механизмы ввода и вывода, слайд №32 Механизмы ввода и вывода, слайд №33 Механизмы ввода и вывода, слайд №34 Механизмы ввода и вывода, слайд №35 Механизмы ввода и вывода, слайд №36 Механизмы ввода и вывода, слайд №37 Механизмы ввода и вывода, слайд №38 Механизмы ввода и вывода, слайд №39 Механизмы ввода и вывода, слайд №40 Механизмы ввода и вывода, слайд №41 Механизмы ввода и вывода, слайд №42 Механизмы ввода и вывода, слайд №43 Механизмы ввода и вывода, слайд №44 Механизмы ввода и вывода, слайд №45 Механизмы ввода и вывода, слайд №46 Механизмы ввода и вывода, слайд №47 Механизмы ввода и вывода, слайд №48 Механизмы ввода и вывода, слайд №49 Механизмы ввода и вывода, слайд №50 Механизмы ввода и вывода, слайд №51 Механизмы ввода и вывода, слайд №52 Механизмы ввода и вывода, слайд №53 Механизмы ввода и вывода, слайд №54 Механизмы ввода и вывода, слайд №55 Механизмы ввода и вывода, слайд №56 Механизмы ввода и вывода, слайд №57 Механизмы ввода и вывода, слайд №58

Содержание

Вы можете ознакомиться и скачать презентацию на тему Механизмы ввода и вывода. Доклад-сообщение содержит 58 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Механизмы ввода и вывода
Описание слайда:
Механизмы ввода и вывода

Слайд 2


План лекции Потоки данных (streams) Виды потоков и базовые классы Разновидности потоков Сериализация
Описание слайда:
План лекции Потоки данных (streams) Виды потоков и базовые классы Разновидности потоков Сериализация

Слайд 3


Обмен данными Разнообразие задач Сетевые приложения Обработка ввода с клавиатуры Запись и считывание данных из файлов И еще множество других...
Описание слайда:
Обмен данными Разнообразие задач Сетевые приложения Обработка ввода с клавиатуры Запись и считывание данных из файлов И еще множество других Выделение системы ввода/вывода Широкий спектр источников и получателей Различные форматы передачи данных

Слайд 4


Традиционно, проблемы! Ввод/вывод не должен зависеть от платформы! Отделение логики однотипных операций ввода/вывода от низкоуровневых операций...
Описание слайда:
Традиционно, проблемы! Ввод/вывод не должен зависеть от платформы! Отделение логики однотипных операций ввода/вывода от низкоуровневых операций Применяется модель потоков данных: упорядоченная последовательность данных, которой соответствует определенный источник (потоки ввода) или получатель (потоки вывода)

Слайд 5


Потоки данных Представляют собой объекты Описываются специальными классами Решают большинство типичных задач ввода/вывода Базовые классы работают с...
Описание слайда:
Потоки данных Представляют собой объекты Описываются специальными классами Решают большинство типичных задач ввода/вывода Базовые классы работают с байтовым представлением данных с символьным представлением данных

Слайд 6


Разновидности потоков
Описание слайда:
Разновидности потоков

Слайд 7


Структура пакета java.io Типы общего назначения Классы разновидностей потоков Специализированные классы и интерфейсы для ввода и вывода значений...
Описание слайда:
Структура пакета java.io Типы общего назначения Классы разновидностей потоков Специализированные классы и интерфейсы для ввода и вывода значений простых типов Классы и интерфейсы работы с файлами Классы и интерфейсы механизма сериализации

Слайд 8


Разновидности потоков
Описание слайда:
Разновидности потоков

Слайд 9


Класс InputStream abstract int read() throws IOException int read(byte[] b, int off, int len) throws IOException int read(byte[] b) throws...
Описание слайда:
Класс InputStream abstract int read() throws IOException int read(byte[] b, int off, int len) throws IOException int read(byte[] b) throws IOException long skip(long n) throws IOException int available() throws IOException void close() throws IOException

Слайд 10


Класс OutputStream abstract void write(int b) throws IOException void write(byte[] b, int off, int len) throws IOException void write(byte[] b)...
Описание слайда:
Класс OutputStream abstract void write(int b) throws IOException void write(byte[] b, int off, int len) throws IOException void write(byte[] b) throws IOException void flush() throws IOException void close() throws IOException

Слайд 11


Класс Reader int read() throws IOException abstract int read(char[] b, int off, int len) throws IOException int read(char[] b) throws IOException...
Описание слайда:
Класс Reader int read() throws IOException abstract int read(char[] b, int off, int len) throws IOException int read(char[] b) throws IOException long skip(long n) throws IOException boolean ready() throws IOException abstract void close() throws IOException

Слайд 12


Класс Writer void write(int ch) throws IOException abstract void write(char[] b, int off, int len) throws IOException void write(char[] b) throws...
Описание слайда:
Класс Writer void write(int ch) throws IOException abstract void write(char[] b, int off, int len) throws IOException void write(char[] b) throws IOException void write(String str, int off, int len) throws IOException void write(String str) throws IOException abstract void flush() throws IOException abstract void close() throws IOException

Слайд 13


Классы потоков ввода и вывода Образуют 4 иерархии, в основе которых лежат базовые абстрактные классы Имя любого дочернего класса в иерархии имеет...
Описание слайда:
Классы потоков ввода и вывода Образуют 4 иерархии, в основе которых лежат базовые абстрактные классы Имя любого дочернего класса в иерархии имеет суффикс, совпадающий с именем корневого класса По сути делятся на 2 вида: «Реальные» потоки: источник (получатель) данных реален Потоки-обертки: источником (получателем) данных является другой поток

Слайд 14


Иерархия байтовых потоков
Описание слайда:
Иерархия байтовых потоков

Слайд 15


Иерархия символьных потоков
Описание слайда:
Иерархия символьных потоков

Слайд 16


Забавная особенность Уже знакомые потоки: System.out System.in System.err Какого они типа? Байтового!!! (для совместимости с версиями Java 1.0 и 1.1)
Описание слайда:
Забавная особенность Уже знакомые потоки: System.out System.in System.err Какого они типа? Байтового!!! (для совместимости с версиями Java 1.0 и 1.1)

Слайд 17


Группа потоков Print Обертки PrintStream и PrintWriter содержат методы, упрощающие задачу вывода данных простых типов в текстовом виде Методы print()...
Описание слайда:
Группа потоков Print Обертки PrintStream и PrintWriter содержат методы, упрощающие задачу вывода данных простых типов в текстовом виде Методы print() и println() не выбрасывают исключений System.out и System.err – единственные потоки PrintStream

Слайд 18


Группа байтовых потоков ByteArray ByteArrayInputStream, ByteArrayOutputStream В качестве источника и получателя данных используются массивы байт В...
Описание слайда:
Группа байтовых потоков ByteArray ByteArrayInputStream, ByteArrayOutputStream В качестве источника и получателя данных используются массивы байт В потоке вывода размер буфера может меняться динамически В потоке вывода существуют методы преобразования: к массиву байт byte[] toByteArray() к строке String toString() вывода в другой поток void writeTo(OutputStream out)

Слайд 19


Группа байтовых потоков ByteArray
Описание слайда:
Группа байтовых потоков ByteArray

Слайд 20


Группы символьных потоков CharArray и String CharArrayReader и CharArrayWriter аналогичны ByteArrayInputStream и ByteArrayOutputStream, но оперируют...
Описание слайда:
Группы символьных потоков CharArray и String CharArrayReader и CharArrayWriter аналогичны ByteArrayInputStream и ByteArrayOutputStream, но оперируют с массивом символов StringReader и StringWriter имеют аналогичную функциональность, позволяют считывать символы из строки и записывать данные в строковый буфер

Слайд 21


Группа потоков File FileInputStream, FileReader FileOutputStream, FileWriter Позволяют трактовать файл как поток, предназначенный для ввода и вывода...
Описание слайда:
Группа потоков File FileInputStream, FileReader FileOutputStream, FileWriter Позволяют трактовать файл как поток, предназначенный для ввода и вывода данных Связаны с исключениями FileNotFoundException и SecurityException Конструкторы могут получать параметры: Строку String, задающую имя файла Объект класса File Объект FileDescriptor (возвращается методом getFD() байтовых потоков)

Слайд 22


Классы-трансляторы Позволяют читать из байтового как из символьного и записывать в байтовый поток как в символьный (с учетом кодировки)...
Описание слайда:
Классы-трансляторы Позволяют читать из байтового как из символьного и записывать в байтовый поток как в символьный (с учетом кодировки) InputStreamReader InputStreamReader(InputStream in) InputStreamReader(InputStream in, String encoding) throws UnsupportedEncodingException OutputStreamWriter OutputStreamWriter(OutputStream out) OutputStreamWriter(OutputStream out, String encoding) throws UnsupportedEncodingException

Слайд 23


InputStreamReader и OutputStreamWriter
Описание слайда:
InputStreamReader и OutputStreamWriter

Слайд 24


Группа потоков Filter FilterInputStream, FilterReader FilterOutputStream, FiltrerWriter Обертки, позволяют объединять потоки в цепочки для получения...
Описание слайда:
Группа потоков Filter FilterInputStream, FilterReader FilterOutputStream, FiltrerWriter Обертки, позволяют объединять потоки в цепочки для получения сложных потоков, обладающих расширенным набором функций Обладают дополнительными защищенными конструкторами protected FilterInputStream(InputStream in) В наследниках обычно переопределяются методы чтения/записи с добавлением новой функциональности

Слайд 25


Группа потоков Buffered BufferedInputStream, BufferedReader BufferedOutputStream, BufferedWriter Обертки, осуществляют буферизацию данных на...
Описание слайда:
Группа потоков Buffered BufferedInputStream, BufferedReader BufferedOutputStream, BufferedWriter Обертки, осуществляют буферизацию данных на программном уровне Размер буфера можно задать в конструкторе Символьные версии имеют методы чтения строк и вставки символа новой строки: readLine(), newLine()

Слайд 26


Группа потоков Buffered
Описание слайда:
Группа потоков Buffered

Слайд 27


Группа потоков Piped PipedInputStream, PipedReader PipedOutputStream, PipedWriter Используются в виде пар ввода-вывода Данные, переданные в поток...
Описание слайда:
Группа потоков Piped PipedInputStream, PipedReader PipedOutputStream, PipedWriter Используются в виде пар ввода-вывода Данные, переданные в поток вывода, служат источником для потока ввода Например, реализуют механизм обмена данными между нитями Поток-пара задается параметром конструктора либо с помощью метода connect()

Слайд 28


Группа потоков Piped
Описание слайда:
Группа потоков Piped

Слайд 29


Класс StreamTokenizer Не является потоком чтения, но позволяет обрабатывать информацию из них Содержит методы лексической обработки текста Ряд...
Описание слайда:
Класс StreamTokenizer Не является потоком чтения, но позволяет обрабатывать информацию из них Содержит методы лексической обработки текста Ряд методов предназначен для настройки работы анализатора Метод nextToken() производит обработку очередной лексемы, после чего: Поле ttype содержит константу типа лексемы Поля nval и sval содержат числовое и строковое представление лексемы

Слайд 30


Класс StreamTokenizer
Описание слайда:
Класс StreamTokenizer

Слайд 31


Группа байтовых потоков Data Интерфейсы DataInput и DataOutput содержат объявления методов ввода и вывода значений простых типов void writeLong(long...
Описание слайда:
Группа байтовых потоков Data Интерфейсы DataInput и DataOutput содержат объявления методов ввода и вывода значений простых типов void writeLong(long v), void writeFloat(float v) boolean readBoolean(), String readUTF() Обертки DataInputStream и DataOutputStream, соответственно, реализуют эти интерфейсы Класс RandomAccessFile реализует оба интерфейса Data и позволяет работать с файлами в режиме произвольного доступа

Слайд 32


Группа байтовых потоков Data
Описание слайда:
Группа байтовых потоков Data

Слайд 33


Класс File Инкапсулирует платформенно-независимые методы работы с файлами и директориями: создание, переименование, удаление проверка типа пути: файл...
Описание слайда:
Класс File Инкапсулирует платформенно-независимые методы работы с файлами и директориями: создание, переименование, удаление проверка типа пути: файл или каталог проверка атрибутов файлов и каталогов проверка существования файлов и каталогов Позволяет создавать временные файлы, удаляемые при завершении работы программы Определяет доступ лишь к метаданным файловой системы для чтения или записи используются потоки данных

Слайд 34


Класс File
Описание слайда:
Класс File

Слайд 35


Пример записи в текстовый файл
Описание слайда:
Пример записи в текстовый файл

Слайд 36


Пример чтения из текстового файла и из консоли
Описание слайда:
Пример чтения из текстового файла и из консоли

Слайд 37


Пример записи в байтовый файл
Описание слайда:
Пример записи в байтовый файл

Слайд 38


Пример чтения из байтового файла
Описание слайда:
Пример чтения из байтового файла

Слайд 39


Соответствие классов для байтовых и символьных потоков
Описание слайда:
Соответствие классов для байтовых и символьных потоков

Слайд 40


Соответствие классов для байтовых и символьных потоков
Описание слайда:
Соответствие классов для байтовых и символьных потоков

Слайд 41


Сериализация объектов Сериализация – процесс преобразования состояния объекта в бинарный формат (например, в файл или поток) Десериализация –...
Описание слайда:
Сериализация объектов Сериализация – процесс преобразования состояния объекта в бинарный формат (например, в файл или поток) Десериализация – восстановление состояния объекта из бинарных данных Не все объекты могут быть сериализованы Класс должен быть подготовлен к сериализации

Слайд 42


Сериализация объектов Сериализованный объект можно сохранить в файл или передать по сети После передачи объект можно восстановить, то есть...
Описание слайда:
Сериализация объектов Сериализованный объект можно сохранить в файл или передать по сети После передачи объект можно восстановить, то есть десериализовать Сериализацию и десериализацию можно производить в разных JVM Широкое применение сериализации при создании распределенных приложений

Слайд 43


Группа байтовых потоков Object Класс ObjectOutputStream реализует сериализацию Класс ObjectInputStream реализует десериализацию Классы позволяют...
Описание слайда:
Группа байтовых потоков Object Класс ObjectOutputStream реализует сериализацию Класс ObjectInputStream реализует десериализацию Классы позволяют выводить и вводить графы объектов с сохранением структуры Результатом десериализации является объект, равнозначный исходному

Слайд 44


Пример сериализации в файл
Описание слайда:
Пример сериализации в файл

Слайд 45


Пример десериализации из файла
Описание слайда:
Пример десериализации из файла

Слайд 46


Сравнение исходного и восстановленного объектов При сравнении методом equals состояний исходного и десериализованного объектов ожидается значение true
Описание слайда:
Сравнение исходного и восстановленного объектов При сравнении методом equals состояний исходного и десериализованного объектов ожидается значение true

Слайд 47


Подготовка классов к сериализации Должен реализовываться интерфейс-маркер java.io.Serializable Все сериализуемые поля должны иметь сериализуемый тип...
Описание слайда:
Подготовка классов к сериализации Должен реализовываться интерфейс-маркер java.io.Serializable Все сериализуемые поля должны иметь сериализуемый тип Родительский класс должен иметь конструктор по умолчанию (без параметров) или быть подготовленным к сериализации Сериализуются поля объекта, не обозначенные как transient или static

Слайд 48


Порядок сериализации и десериализации В нисходящем порядке по древовидной иерархии типов: от первого сериализуемого класса до частного типа Объекты,...
Описание слайда:
Порядок сериализации и десериализации В нисходящем порядке по древовидной иерархии типов: от первого сериализуемого класса до частного типа Объекты, на которые ссылаются поля, сериализуются в порядке обнаружения Перед десериализацией выполняется загрузка участвующих классов (возможен выброс исключения ClassNotFoundException)

Слайд 49


Пример иерархии классов
Описание слайда:
Пример иерархии классов

Слайд 50


Результаты десериализации
Описание слайда:
Результаты десериализации

Слайд 51


Порядок сериализации
Описание слайда:
Порядок сериализации

Слайд 52


Порядок десериализации
Описание слайда:
Порядок десериализации

Слайд 53


Сериализация связанных объектов Если сериализуемый объект ссылается на другие объекты, их необходимо сохранять Строится граф сериализации, включающий...
Описание слайда:
Сериализация связанных объектов Если сериализуемый объект ссылается на другие объекты, их необходимо сохранять Строится граф сериализации, включающий все связанные объекты Нескольким ссылкам на один объект соответствует только один объект графа Если встречен несериализуемый объект, генерируется NotSerializableException

Слайд 54


Настройка сериализации Для изменения работы механизма сериализации на уровне вашего класса в нем надо описать методы: реализация сериализации private...
Описание слайда:
Настройка сериализации Для изменения работы механизма сериализации на уровне вашего класса в нем надо описать методы: реализация сериализации private void writeObject(ObjectOutputStream out) throws IOException реализация десериализации private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException Уровень доступа методов позволяет им независимо работать в разных классах в иерархиях наследования Можно не переписывать чтение/запись полностью, а лишь изменить порядок записи полей и их формат (методы ObjectOutputStream.writeFields() и ObjectInputStream.readFields())

Слайд 55


Настройка сериализации
Описание слайда:
Настройка сериализации

Слайд 56


Контроль версий Каждый класс имеет уникальный идентификатор номера версии – 64 битовое значение long По умолчанию значение рассчитывается как функция...
Описание слайда:
Контроль версий Каждый класс имеет уникальный идентификатор номера версии – 64 битовое значение long По умолчанию значение рассчитывается как функция от кода класса (включая методы) Несовпадение версий при десериализации объекта выбрасывает исключение InvalidClassException Схему можно обойти, явно введя в класс поле private static final long serialVersionUID = ...;

Слайд 57


Спасибо за внимание!
Описание слайда:
Спасибо за внимание!

Слайд 58


Дополнительные источники Арнолд, К. Язык программирования Java [Текст] / Кен Арнолд, Джеймс Гослинг, Дэвид Холмс. – М. : Издательский дом «Вильямс»,...
Описание слайда:
Дополнительные источники Арнолд, К. Язык программирования Java [Текст] / Кен Арнолд, Джеймс Гослинг, Дэвид Холмс. – М. : Издательский дом «Вильямс», 2001. – 624 с. Вязовик, Н.А. Программирование на Java. Курс лекций [Текст] / Н.А. Вязовик. – М. : Интернет-университет информационных технологий, 2003. – 592 с. Хорстманн, К. Java 2. Библиотека профессионала. Том 1. Основы [Текст] / Кей Хорстманн, Гари Корнелл. – М. : Издательский дом «Вильямс», 2010 г. – 816 с. Эккель, Б. Философия Java [Текст] / Брюс Эккель. – СПб. : Питер, 2011. – 640 с. JavaSE at a Glance [Электронный ресурс]. – Режим доступа: дата доступа: 21.10.2011. JavaSE APIs & Documentation [Электронный ресурс]. – Режим доступа: дата доступа: 21.10.2011.



Похожие презентации
Mypresentation.ru
Загрузить презентацию