| |
асса URL и read из класса InputStream)
можно применить для решения задачи получения содержимого двоичного или
текстового файла, хранящегося в одном из каталогов сервера Web. Сделав это,
обычное приложение Java или аплет может выполнить локальную обработку
полученного файла на компьютере удаленного пользователя.
Метод getContent
Очень интересен метод getConten. Этот метод определяет и получает содержимое
сетевого ресурса, для которого создан объект URL:
public final Object getContent();
Практически вы можете использовать метод getContent для получения текстовых
файлов, расположенных в сетевых каталогах.
К сожалению, данный метод непригоден для получения документов HTML, так как
для данного ресурса не определен обработчик соедржимого, предназначенный для
создания объекта. Метод getContent не способен создать объект ни из чего
другого, кроме текстового файла.
Данная проблема, тем не менее, решается очень просто - достаточно вместо
метода getContent использовать описанную выше комбинацию методов openStream из
класса URL и read из класса InputStream.
Метод getHost
С помощью метода getHost вы можете определить имя узла, соответствующего
данному объекту URL:
public String getHost();
Метод getFile
Метод getFile позволяет получить информацию о файле, связанном с данным
объектом URL:
public String getFile();
Метод getPort
Метод getPort предназначен для определения номера порта, на котором
выполняется связь для объекта URL:
public int getPort();
Метод getProtocol
С помощью метода getProtocol вы можете определить протокол, с использованием
которого установлено соединение с ресурсом, заданным объектом URL:
public String getProtocol();
Метод getRef
Метод getRef возвращает текстовую строку ссылки на ресурс, соответствующий
данному объекту URL:
public String getRef();
Метод hashCode
Метод hashCode возвращает хэш-код объекта URL:
public int hashCode();
Метод sameFile
С помощью метода sameFile вы можете определить, ссылаются ли два объекта
класса URL на один и тот же ресурс, или нет:
public boolean sameFile(URL other);
Если объекты ссылаются на один и тот же ресурс, метод sameFile возвращает
значение true, если нет - false.
Метод equals
Вы можете использовать метод equals для определения идентичности адресов URL,
заданных двумя объектами класса URL:
public boolean equals(Object obj);
Если адреса URL идентичны, метод equals возвращает значение true, если нет -
значение false.
Метод toExternalForm
Метод toExternalForm возвращает текстовую строку внешнего представления
адреса URL, определенного данным объектом класса URL:
public String toExternalForm();
Метод toString
Метод toString возвращает текстовую строку, представляющую данный объект
класса URL:
public String toString();
Метод openConnection
Метод openConnection предназначен для создания канала между приложением и
сетевым ресурсом, представленным объектом класса URL:
public URLConnection openConnection();
Если вы создаете приложение, которое позволяет читать из каталогов сервера
Web текстовые или двоичные файлы, можно создать поток методом openStream или
получить содержимое текстового ресурса методом getContent.
Однако есть и другая возможность. Вначале вы можете создать канал, как
объект класса URLConnection, вызвав метод openConnection, а затем создать для
этого канала входной поток, воспользовавшись методом getInputStream,
определенным в классе URLConnection. Такая методика позволяет определить или
установить перед созданием потока некоторые характеристики канала, например,
задать кэширование.
Однако самая интересная возможность, которую предоставляет этот метод,
заключается в организации взаимодействия приложения Java и сервера Web.
Подробнее методика организации такого взаимодействия и класс URLConnection
будет рассмотрен позже.
Приложение URLDemo
В качестве практического примера применения класса URL мы создали приложение
URLDemo. Это приложение вводит с консоли адрес URL текстового или двоичного
файла, расположенного на сервере Web и создает для этого файла входной поток. С
использованием данного потока приложение копирует файл на локальный диск
компьютера в текущий каталог.
Исходный текст приложения
Исходный текст приложения URLDemo приведены в листинге 3.2.
Листинг 3.2. Файл URLDemo\URLDemo.java
// =========================================================
// Копирование файла, расположенного в каталоге
// сервера Web, с помощью класса URL
//
// (C) Фролов А.В, 1997
//
// E-mail: [email protected]
// WWW: http://www.glasnet.ru/~frolov
// или
// http://www.dials.ccas.ru/frolov
// =========================================================
import java.net.*;
import java.io.*;
import java.util.*;
// =========================================================
// Класс InetAddressDemo
// Главный класс приложения
// =========================================================
public class URLDemo
{
// -----------------------------------
|
|