Программирование на JAVA

Навигация

Лекция 1. Что такое Java? История создания

Лекция 2. Основы объектно-ориентированного программирования

Лекция 3. Лексика языка

Лекция 4. Типы данных

Лекция 5. Имена. Пакеты

Лекция 6. Объявление классов

Лекция 7. Преобразование типов

Лекция 8. Объектная модель в Java

Лекция 9. Массивы

Лекция 10. Операторы и структура кода. Исключения

Лекция 11. Пакет java.awt

Лекция 12. Потоки выполнения. Синхронизация

Лекция 13. Пакет java.lang

Лекция 14. Пакет java.util

Лекция 15. Пакет java.io

Лекция 16. Введение в сетевые протоколы

Лекция 15. Пакет java.io

Эта лекция описывает реализованные в Java возможности передачи ин­формации, что является важной функцией для большинства программных систем. Сюда входит работа с файлами, сетью, долговременное сохранение объектов, обмен данными между потоками исполнения и т.п. Все эти действия базируются на потоках байт (представлены классами InputStream и OutputStream) и потоках символов (Reader и Writer). В библиотеке java.io со­держатся все эти классы и их многочисленные наследники, предоставляющие полезные возможности. Отдельно рассматривается механизм сериализации объектов и работа с файлами.

Ключевые слова: сериализация, поток данных, stream.

Система ввода/вывода. Потоки данных (stream)

Подавляющее большинство программ обменивается данными с внешним миром. Это, безусловно, делают любые сетевые приложения — они передают и получают информацию от других компьютеров и специ­альных устройств, подключенных к сети. Оказывается, можно точно та­ким же образом представлять обмен данными между устройствами внут­ри одной машины. Так, например, программа может считывать данные с клавиатуры и записывать их в файл, или же наоборот - считывать данные из файла и выводить их на экран. Таким образом, устройства, откуда мо­жет производиться считывание информации, могут быть самыми разно­образными — файл, клавиатура, входящее сетевое соединение и т.д. То же касается и устройств вывода — это может быть файл, экран монитора, принтер, исходящее сетевое соединение и т.п. В конечном счете, все дан­ные в компьютерной системе в процессе обработки передаются от уст­ройств ввода к устройствам вывода.

Обычно часть вычислительной платформы, которая отвечает за об­мен данными, так и называется — система ввода/вывода. В Java она пред­ставлена пакетом java.io (input/output). Реализация системы ввода/выво-Да осложняется не только широким спектром источников и получателей Данных, но еще и различными форматами передачи информации Ею мож­но обмениваться в двоичном представлении, символьном или текстовом, с применением некоторой кодировки (только для русского языка их насчи­тывается более 4 штук), или передавать числа в различных представлениях. Доступ к данным может потребоваться как последовательный (например, считывание HTML-страницы), так и произвольный (сложная работа с не­