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

Нажмите для полного просмотра!
Механизмы ввода и вывода информации. Понятие сериализации, слайд №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

Содержание

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

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


Слайд 1


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

Слайд 2


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

Слайд 3


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

Слайд 4


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

Слайд 5


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

Слайд 6


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

Слайд 7


Класс 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

Слайд 8


Класс 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

Слайд 9


Класс 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

Слайд 10


Класс 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

Слайд 11


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

Слайд 12


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

Слайд 13


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

Слайд 14


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

Слайд 15


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

Слайд 16


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

Слайд 17


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

Слайд 18


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

Слайд 19


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

Слайд 20


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

Слайд 21


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

Слайд 22


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

Слайд 23


Группа байтовых потоков 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 и позволяет работать с файлами в режиме произвольного доступа

Слайд 24


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

Слайд 25


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

Слайд 26


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

Слайд 27


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

Слайд 28


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

Слайд 29


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

Слайд 30


Форматированные ввод и вывод (Java 5) java.util.Formatter Обеспечивает преобразования формата, позволяющие выводить числа, строки, время и даты в...
Описание слайда:
Форматированные ввод и вывод (Java 5) java.util.Formatter Обеспечивает преобразования формата, позволяющие выводить числа, строки, время и даты в практически любом нужном вам формате java.util.Scanner Позволяет использовать форматированный ввод и преобразовывать значения к нужным типам

Слайд 31


java.util.Formatter Конструкторы Имеет множество конструкторов, позволяющих задать следующие параметры (либо, если они не заданы, использовать...
Описание слайда:
java.util.Formatter Конструкторы Имеет множество конструкторов, позволяющих задать следующие параметры (либо, если они не заданы, использовать значения по умолчанию) Объект вывода Appendable a File file String fileName OutputStream os PrintStream ps по умолчанию – без автоматического вывода Кодовая таблица String charSet по умолчанию – текущая таблица Параметры локализации Locale locale по умолчанию – текущие параметры

Слайд 32


java.util.Formatter Важные методы Formatter format(String fmtString, Object ... args) Форматирует указанные аргументы в соответствии со строкой...
Описание слайда:
java.util.Formatter Важные методы Formatter format(String fmtString, Object ... args) Форматирует указанные аргументы в соответствии со строкой форматирования Formatter format(Locale loc, String fmtString, Object ... args) Форматирует указанные аргументы в соответствии со строкой форматирования и указанной локализацией

Слайд 33


java.util.Formatter Важные методы IOException ioException() Возвращает объект исключения, генерируемый объектом-приемником, иначе null Appendable...
Описание слайда:
java.util.Formatter Важные методы IOException ioException() Возвращает объект исключения, генерируемый объектом-приемником, иначе null Appendable out() Возвращает ссылку на объект-приемник выходных данных Locale locale() Возвращает ссылку на объект локализации

Слайд 34


java.util.Formatter Важные методы String toString() Возвращает объект типа String, содержащий отформатированный вывод void flush() Переносит...
Описание слайда:
java.util.Formatter Важные методы String toString() Возвращает объект типа String, содержащий отформатированный вывод void flush() Переносит информацию из буфера форматирования void close() Закрывает объект форматировщика, освобождает ресурсы

Слайд 35


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

Слайд 36


Преобразующие спецификаторы формата
Описание слайда:
Преобразующие спецификаторы формата

Слайд 37


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

Слайд 38


Возможности форматирования Управление регистром вывода Сложное форматирование времени и даты Задание минимальной ширины поля
Описание слайда:
Возможности форматирования Управление регистром вывода Сложное форматирование времени и даты Задание минимальной ширины поля

Слайд 39


Возможности форматирования Задание точности вывода для вещественных значений Выравнивание вывода Разделение групп цифр и т.д.
Описание слайда:
Возможности форматирования Задание точности вывода для вещественных значений Выравнивание вывода Разделение групп цифр и т.д.

Слайд 40


Метод printf() Использует автоматически создаваемый экземпляр класса Formatter Объявлен в классах: java.io.PrintWriter java.io.PrintStream Имеет...
Описание слайда:
Метод printf() Использует автоматически создаваемый экземпляр класса Formatter Объявлен в классах: java.io.PrintWriter java.io.PrintStream Имеет такие же параметры, что и метод Formatter.format()

Слайд 41


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

Слайд 42


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

Слайд 43


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

Слайд 44


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

Слайд 45


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

Слайд 46


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

Слайд 47


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

Слайд 48


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

Слайд 49


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

Слайд 50


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

Слайд 51


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

Слайд 52


Интерфейс Externalizable «Ручная» сериализация: реализация сериализации public void writeExternal(ObjectOutputStream out) throws IOException...
Описание слайда:
Интерфейс Externalizable «Ручная» сериализация: реализация сериализации public void writeExternal(ObjectOutputStream out) throws IOException реализация десериализации private void readExternal(ObjectInputStream in) throws IOException, ClassNotFoundException Требует наличия конструктора по умолчанию у класса. JVM сначала вызывает конструктор без параметров, и только потом на уже созданном объекте вызывает метод readExternal Выигрыш в производительности при грамотной реализации Нарушение целостности графа

Слайд 53


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

Слайд 54


Дополнительные источники Арнолд, К. Язык программирования 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
Загрузить презентацию