Периферийные устройства
<<  Растровые изображения на экране монитора Организация ввода и вывода данных  >>
Java Advanced
Java Advanced
Содержание
Содержание
Ввод-вывод в Java
Ввод-вывод в Java
Потоки ввода-вывода
Потоки ввода-вывода
Виды потоков
Виды потоков
Классы потоков
Классы потоков
Исключительные ситуации
Исключительные ситуации
Потоки ввода
Потоки ввода
Потоки вывода
Потоки вывода
Пример: Блочное копирование
Пример: Блочное копирование
Файловый ввод-вывод и конвертация потоков
Файловый ввод-вывод и конвертация потоков
Классы файлового ввода-вывода
Классы файлового ввода-вывода
Создание файловых потоков
Создание файловых потоков
Пример: преобразования регистра
Пример: преобразования регистра
Байтовый поток
Байтовый поток
Символьный поток
Символьный поток
Пример: перекодирование файла
Пример: перекодирование файла
Фильтрующие потоки
Фильтрующие потоки
Фильтрующие потоки
Фильтрующие потоки
Буферизующие потоки
Буферизующие потоки
Чтение с возвратом
Чтение с возвратом
Пример: шифрующий поток
Пример: шифрующий поток
Дополнительные возможности потоков
Дополнительные возможности потоков
Эмуляция чтения
Эмуляция чтения
Эмуляция записи
Эмуляция записи
Конкатенация потоков
Конкатенация потоков
Вывод с подавлением ошибок
Вывод с подавлением ошибок
Ввод с подсчетом строк
Ввод с подсчетом строк
Расширенный ввод-вывод
Расширенный ввод-вывод
Расширенная запись данных
Расширенная запись данных
Расширенное чтение данных
Расширенное чтение данных
Файлы c произвольным доступом
Файлы c произвольным доступом
Дополнительные операции
Дополнительные операции
Дескрипторы файлов
Дескрипторы файлов
Дескрипторы файлов
Дескрипторы файлов
Разделители
Разделители
Операции с дескрипторами
Операции с дескрипторами
Операции с файлами (1)
Операции с файлами (1)
Операции с файлами (2)
Операции с файлами (2)
Листинг директории
Листинг директории
Ввод-вывод и исключения
Ввод-вывод и исключения
Обычная обработка исключений
Обычная обработка исключений
Надежная обработка исключений
Надежная обработка исключений
Альтернативный метод
Альтернативный метод
Случай нескольких потоков
Случай нескольких потоков
Заключение
Заключение
Ссылки
Ссылки
Вопросы
Вопросы

Презентация на тему: «Ввод-вывод». Автор: Geo. Файл: «Ввод-вывод.ppt». Размер zip-архива: 201 КБ.

Ввод-вывод

содержание презентации «Ввод-вывод.ppt»
СлайдТекст
1 Java Advanced

Java Advanced

Ввод-вывод

2 Содержание

Содержание

Потоки ввода-вывода Файловый ввод-вывод и конвертация потоков Фильтрующие потоки Дополнительные возможности потоков Расширенный ввод-вывод Дескрипторы файлов Ввод-вывод и исключения Заключение

Java Advanced / Ввод-вывод

3 Ввод-вывод в Java

Ввод-вывод в Java

Потоки ввода-вывода Пакет java.io

Java Advanced / Ввод-вывод

4 Потоки ввода-вывода

Потоки ввода-вывода

Часть 1

5 Виды потоков

Виды потоков

Направление Ввод Вывод Содержимое Байтовые Символьные

Java Advanced / Ввод-вывод

6 Классы потоков

Классы потоков

Байтовый

Символьный

Ввод

InputStream

Reader

Вывод

OutputStream

Writer

Java Advanced / Ввод-вывод

7 Исключительные ситуации

Исключительные ситуации

Класс IOException Корень иерархии исключений ввода-вывода Бросается всеми операциями ввода/вывода Класс EOFException Достигнут конец потока Класс FilenotFoundException Файл не найден Класс UnsupportedEncodingException Неизвестная кодировка

Java Advanced / Ввод-вывод

8 Потоки ввода

Потоки ввода

Основные операции int read() — чтение элемента read(T[] v), read(T[] v, off, len) — чтение элементов в массив Дополнительные операции skip(n) — пропуск n элементов close() — закрытие потока Пометки и возвраты mark(limit) — пометка текущей позиции reset() — возврат к помеченной позиции

Java Advanced / Ввод-вывод

9 Потоки вывода

Потоки вывода

Основные операции write(int v) — запись элемента write(T[] v) — запись массива элементов write(T[] v, off, len) — запись части массива Дополнительные операции flush() — запись буфера close() — закрытие потока

Java Advanced / Ввод-вывод

10 Пример: Блочное копирование

Пример: Блочное копирование

Процедура копирования void copy(InputStream is, OutputStream os) throws IOException { byte[] b = new byte[1024]; int c = 0; while ((c = is.read(b)) >= 0) { os.write(b, 0, c); } }

Java Advanced / Ввод-вывод

11 Файловый ввод-вывод и конвертация потоков

Файловый ввод-вывод и конвертация потоков

Часть 2

12 Классы файлового ввода-вывода

Классы файлового ввода-вывода

Классы File* FileInputStream FileOutputStream FileReader FileWriter

Java Advanced / Ввод-вывод

13 Создание файловых потоков

Создание файловых потоков

Для символьных потоков используется кодировка по умолчанию Для ввода/вывода File*(File file) — по дескриптору File*(String file) — по имени Для дописывания File*(File file, boolean append) — по дескриптору File*(String file, boolean append) — по имени

Java Advanced / Ввод-вывод

14 Пример: преобразования регистра

Пример: преобразования регистра

Файл input.txt копируется в output.txt с изменением регистра Reader reader = new FileReader("input.txt"); Writer writer = new FileWriter("output.txt"); int c = 0; while ((c = reader.read()) >= 0) { writer.write(Character.toUpperCase((char) c)); } reader.close(); writer.close();

Java Advanced / Ввод-вывод

15 Байтовый поток

Байтовый поток

символьный

При чтении возможно преобразование байтового потока в символьный, с указанием кодировки Класс InputStreamReader InputStreamReader(InputStream, encoding?)

Java Advanced / Ввод-вывод

16 Символьный поток

Символьный поток

байтовый

При записи возможно преобразование символьного потока в байтовый, с указанием кодировки Класс OutputStreamWriter OutputStreamWriter(OutputStream, encoding?)

Java Advanced / Ввод-вывод

17 Пример: перекодирование файла

Пример: перекодирование файла

Файл input.txt копируется в output.txt с изменением кодировки с Cp1251 на Cp866 Reader reader = new InputStreamReader( new FileInputStream("input.txt"), "Cp1251"); Writer writer = new OutputStreamWriter( new FileOutputStream("output.txt"), "Cp866"); int c = 0; while ((c = reader.read()) >= 0) writer.write(c); reader.close(); writer.close();

Java Advanced / Ввод-вывод

18 Фильтрующие потоки

Фильтрующие потоки

Часть 3

19 Фильтрующие потоки

Фильтрующие потоки

Направляют все вызовы вложенному потоку Классы Filter*

Java Advanced / Ввод-вывод

20 Буферизующие потоки

Буферизующие потоки

Содержат буфер, который считывают / записывают целиком Классы Buffered*

Java Advanced / Ввод-вывод

21 Чтение с возвратом

Чтение с возвратом

Позволяют “заталкивать” в поток символы, которые затем будут “прочитаны” Классы Pushback* Методы unread(b) – затолкнуть один символ unread(T[] v), unread(T[] v, off, len) – затолкнуть несколько символов

Java Advanced / Ввод-вывод

22 Пример: шифрующий поток

Пример: шифрующий поток

public class EncodingOutputStream extends FilterOutputStream { private final int key; public EncodingOutputStream(OutputStream os, int key) { super(os); this.key = key; } public void write(int b) throws IOException { super.write(b ^ key); } }

Java Advanced / Ввод-вывод

23 Дополнительные возможности потоков

Дополнительные возможности потоков

Часть 4

24 Эмуляция чтения

Эмуляция чтения

Чтение производится из буфера в памяти, передаваемого конструктору Классы ByteArrayInputStream – чтение из массива байт CharArrayReader – чтение из массива символов StringReader – чтение из строки

Java Advanced / Ввод-вывод

25 Эмуляция записи

Эмуляция записи

Запись производится в буфер в памяти, который доступен в любое время Классы ByteArrayOutputStream – запись в массив байт (toByteArray()) CharArrayWriter – запись в массив символов (toString(), toCharArray()) StringWriter – запись в StringBuffer (toString(), toStringBuffer())

Java Advanced / Ввод-вывод

26 Конкатенация потоков

Конкатенация потоков

Несколько байтовых потоков можно конкатенировать Если первый из потоков закончился, производится чтение из второго и т.д. Класс SequenceInputStream SequenceInputStream(InputStream, InputStream) – конкатенация двух потоков SequenceInputStream(Enumeration) – конкатенация нескольких потоков

Java Advanced / Ввод-вывод

27 Вывод с подавлением ошибок

Вывод с подавлением ошибок

Вывод осуществляется построчно, с подавлением ошибок Класс PrintWriter checkError() – проверить, была ли ошибка print(…) – запись без перевода строки println(…) – запись с переводом строки

Java Advanced / Ввод-вывод

28 Ввод с подсчетом строк

Ввод с подсчетом строк

Ввод осуществляется построчно, с подсчетом количества строк Класс LineNumberReader lineNumber() – текущий номер строки

Java Advanced / Ввод-вывод

29 Расширенный ввод-вывод

Расширенный ввод-вывод

Часть 5

30 Расширенная запись данных

Расширенная запись данных

Платформонезависимая запись примитивных типов и строк Интерфейс DataOutput writeT(T) – запись примитивных типов writeUnsignedByte() / writeUnsignedShort() – запись беззнаковых целых writeUTF() – запись строки в кодировке UTF-8 Реализация DataOutputStream

Java Advanced / Ввод-вывод

31 Расширенное чтение данных

Расширенное чтение данных

Платформонезависимое чтение примитивных типов и строк Интерфейс DataInput T readT() – чтение примитивных типов readUnsignedByte() / readUnsignedShort() – чтение беззнаковых целых readUTF() – чтение строки в кодировке UTF-8 Реализация DataInputStream

Java Advanced / Ввод-вывод

32 Файлы c произвольным доступом

Файлы c произвольным доступом

Класс RandomAccessFile Реализует DataInput, DataOutput Конструктор RandomAccessFile(file, mode) – открыть файл в заданном режиме

Строка

Режим

r

Чтение

w

Запись

rw

Чтение и запись

rws

Синхронное чтение и запись

Java Advanced / Ввод-вывод

33 Дополнительные операции

Дополнительные операции

Методы length() – получить размер файла setLength() – установить размер файла getFilePointer() – получить положение указателя seek(long) – установить положения указателя

Java Advanced / Ввод-вывод

34 Дескрипторы файлов

Дескрипторы файлов

Часть 6

35 Дескрипторы файлов

Дескрипторы файлов

Позволяют осуществлять манипуляции с файлами Класс File Создание дескриптора по имени File(pathname) – абсолютный или относительный путь В дескриптора по имени и директории File(File dir, name) File(String dir, name)

Java Advanced / Ввод-вывод

36 Разделители

Разделители

Separator / separtorchar – платформозависимый разделитель директорий pathseparator / pathseparatorchar – платформозависимый разделитель в файлов и директорий в путях

Java Advanced / Ввод-вывод

37 Операции с дескрипторами

Операции с дескрипторами

Получение информации getName() – получить имя getPath() – получить имя и путь getAbsolutePath() – получить абсолютный путь getAbsoluteFile() – получить абсолютный дескриптор Определение родителя String getParent() – как строки File getParetnFile() – как дескриптора

Java Advanced / Ввод-вывод

38 Операции с файлами (1)

Операции с файлами (1)

Проверка типа isFile() – является ли файлом isDirectory() – является ли директорией isHidden() – является ли скрытым Получение информации о файла exist() – проверка существования length() – длина файла lastModifier() – время последней модификации

Java Advanced / Ввод-вывод

39 Операции с файлами (2)

Операции с файлами (2)

Создание mkdir() – создать одну директорию mkdirs() – создать все директории createNewFile() – создать пустой файл Удаление delete() – удалить немедленно deleteOnExit() – удалить после завершения Переименование / перенос renameTo(file) – переименовать / перенисти в заданное место

Java Advanced / Ввод-вывод

40 Листинг директории

Листинг директории

Листинг всех файлов String[] list() – получить имена файлов File[] listFiles() – получить дескрипторы файлов Листинг по критерию String[] list(FileNameFilter) – получить имена файлов File[] listFiles(FileFilter) – получить дескрипторы файлов

Java Advanced / Ввод-вывод

41 Ввод-вывод и исключения

Ввод-вывод и исключения

Часть 7

42 Обычная обработка исключений

Обычная обработка исключений

Reader reader = new FileReader("input.txt"); try { // Операции с файлом } finally { if (reader != null) { reader.close(); } }

Java Advanced / Ввод-вывод

43 Надежная обработка исключений

Надежная обработка исключений

Reader reader = new FileReader("input.txt"); try { // Операции с файлом reader.close(); } catch (IOException e) { try { reader.close(); } catch (IOException e) { /* Ignoring */ } throw e; }

Java Advanced / Ввод-вывод

44 Альтернативный метод

Альтернативный метод

Reader reader = null; try { reader = new FileReader("input.txt"); … } finally { if (reader != null) { reader.close(); } }

Java Advanced / Ввод-вывод

45 Случай нескольких потоков

Случай нескольких потоков

Reader reader = new FileReader("input.txt"); try { Writer writer = new FileWriter("output.txt"); try { // Операции ввода-вывода ... } finally { writer.close(); } } finally { reader.close(); }

Java Advanced / Ввод-вывод

46 Заключение

Заключение

Часть 8

47 Ссылки

Ссылки

I/O tutorial // http://java.sun.com/docs/books/tutorial/essential/io/index.html I/O in Java 2 Platform // http://java.sun.com/j2se/1.5.0/docs/guide/io/

Java Advanced / Ввод-вывод

48 Вопросы

Вопросы

Java Advanced / Ввод-вывод

«Ввод-вывод»
http://900igr.net/prezentacija/informatika/vvod-vyvod-68330.html
cсылка на страницу
Урок

Информатика

130 тем
Слайды