Физика
Математика
Архитектура
Сети
Лекции
Интегралы
Начертательная
Курсовая

АЭС

Алгебра
Задачи
ТОЭ
Энергетика
Матанализ
Черчение
Графика

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

Метод System.out.println печатает заданное выражение в стандартный поток вывода (подробнее о потоках ввода и вывода - в параграфе "Работа с файлами"). При создании массива объектов с помощью операции new конструкторы объектов, в отличие от языка C++, не вызываются. Создается только массив ссылок на объекты. Впоследствии можно будет создать объекты с помощью операции new или присвоить элементам массива ссылки на другие объекты.

Архиватор jar

Для упаковки нескольких файлов в один архивный файл, со сжатием или без сжатия., в технологии Java разработан формат JAR. Имя архивного jar-файла может быть любым, но обычно оно получает расширение jar. Способ упаковки и сжатия основан на методе ZIP. Название JAR (Java ARchive) перекликается с названием известной утилиты TAR (Tape ARchive), разработанной в UNIX.

Отличие jar-файлов от zip-файлов только в том, что в первые автоматически включается каталог META-INF, содержащий несколько файлов с информацией об упакованных в архив файлах.

Архивные файлы очень удобно использовать в апплетах, поскольку весь архив загружается по сети сразу же, одним запросом. Все файлы апплета с байт-кодами, изображениями, звуковые файлы упаковываются в один или несколько архивов. Для их загрузки достаточно в теге <appiet> указать имена архивов в параметре archive, например:

<applet code = "MillAnim.class" archive = "first.jar, second.jar" 

width = "100%" height = "100%"></applet>

Основной файл MillAnim.class должен находиться в каком-либо из архивных файлов first.jar или second.jar. Остальные файлы отыскиваются в архивных файлах, а если не найдены там, то на сервере, в том же каталоге, что и HTML-файл. Впрочем, файлы апплета можно упаковать и в zip-архив, со сжатием или без сжатия.

Архивные файлы удобно использовать и в приложениях (applications). Все файлы приложения упаковываются в архив, например, appl.jar. Приложение выполняется прямо из архива, интерпретатор запускается с параметром -jar, например:

Java -jar appl.jar

Имя основного класса приложения, содержащего метод main (), указывается в файле MANIFEST.MF, речь о котором пойдет чуть ниже.

Архивные файлы удобны и просты для компактного хранения всей необходимой для работы программы информации. С файлами архива можно работать прямо из архива, не распаковывая их, с помощью классов пакета java.util.jar. Затем для чтения данных создадим объект URLConnection на основе объекта URL:

URLConnection c = resource.openConnection();

Теперь можно получить ссылку на поток ввода, связанного с данным ресурсом, и создать свой буферизованный поток ввода:

BufferedReader in = new BufferedReader
(new InputStreamReader(c.getInputStream()));

Данные из этого потока можно читать, например, построчно, с помощью метода getLine.
Наконец, отметим, что конструктор URL может генерировать исключение MalformedURLException, а метод openConnection и методы объектов-потоков ввода-вывода могут генерировать исключение IOException. Следовательно, эти исключения нужно обрабатывать.

В предыдущем примере мы рассмотрели, как устанавливается соединение с web-ресурсами на высоком уровне, т.е., через URL. Java предоставляет возможность работать с соединениями и на более низком уровне - через порты и сокеты.
Порт - это абстрактный физический объект, через который осуществляется коммуникация между клиентом и сервером. При этом сервер предоставляет порт, а клиент с ним соединяется.
В операционных системах имеются процессы, назначенные конкретным портам. Программное обеспечение сервера непрерывно прослушивает эти порты на предмет обнаружения сообщений определенного вида. Как правило, порты идентифицируются с помощью номеров. Например, известные нам web-серверы (IIS, Apache) по умолчанию используют порт 80, CУБД MySQL по умолчанию запускается на порте 3306, и т.п. Однако есть много незадействованных портов, которые мы можем применять для создаваемых нами служб.

Проектирование

На главную