Классы Java для работы с потоками

       

Класс URLConnection



Класс URLConnection

Напомним, что в классе URL, рассмотренном нами в начале этой главы, мы привели прототип метода openConnection, возвращающий для заданного объекта класса URL ссылку на объект URLConnection:

public URLConnection openConnection();

Что мы можем получить, имея ссылку на этот объект?

Прежде всего, пользуясь этой ссылкой, мы можем получить содержимое объекта, адресуемое соответствующим объектом URL, методом getContent:

public Object getContent();

Заметим, что метод с таким же названием есть и в классе URL. Поэтому если все, что вы хотите сделать, это получение содержимое файла, адресуемое объектом класса URL, то нет никакой необходимости обращаться к классу URLConnection.

Метод getInputStream позволяет открыть входной поток данных, с помощью которого можно считать файл или получить данные от расширения сервера Web:

public InputStream getInputStream();

В классе URLConnection определен также метод getOutputStream, позволяющий открыть выходной поток данных:

public OutputStream getOutputStream();

Не следует думать, что этот поток можно использовать для записи файлов в каталоги сервера Web. Однако для этого потока есть лучшее применение - с его помощью можно передать данные расширению сервера Web.

Рассмотрим еще несколько полезных методов, определенных в классе URLConnection.



Метод connect предназначен для установки соединения с объектом, на который ссылается объект класса URL:

public abstract void connect();

Перед установкой соединения приложение может установить различные параметры соединения. Некоторые из методов, предназначенных для этого, приведены ниже:

  • setDefaultUseCaches
  • Включение или отключение кэширования по умолчанию

    public void setDefaultUseCaches( boolean defaultusecaches);

  • setUseCaches
  • Включение или отключение кэширования

    public void setUseCaches(boolean usecaches);

  • setDoInput
  • Возможность использования потока для ввода

    public void setDoInput(boolean doinput);

  • setDoOutput
  • Возможность использования потока для вывода


    public void setDoOutput(boolean dooutput);

  • setIfModifiedSince


  • Установка даты модификации документа

    public void setIfModifiedSince( long ifmodifiedsince);

    В классе URLConnection есть методы, позволяющие определить значения параметров, установленных только что описанными методами:

    public boolean getDefaultUseCaches(); public boolean getUseCaches(); public boolean getDoInput(); public boolean getDoOutput(); public long getIfModifiedSince();

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


    • getContentEncoding


    • Метод возвращает содержимое заголовка content-encoding (кодировка ресурса, на который ссылается URL)

      public String getContentEncoding();

    • getContentLength


    • Метод возвращает содержимое заголовка content-length (размер документа)

      public int getContentLength();

    • getContentType


    • Метод возвращает содержимое заголовка content-type (тип содержимого)

      public String getContentType();

    • getDate


    • Метод возвращает содержимое заголовка date (дата посылки ресурса в секундах с 1 января 1970 года)

      public long getDate();

    • getLastModified


    • Метод возвращает содержимое заголовка last-modified (дата изменения ресурса в секундах с 1 января 1970 года)

      public long getLastModified();

    • getExpiration


    • Метод возвращает содержимое заголовка  expires (дата устаревания ресурса в секундах с 1 января 1970 года)

      public long getExpiration();

      Другие методы, определенные в классе URLConnection, позволяют получить все заголовки или заголовки с заданным номером, а также другую информацию о соединении. При необходимости вы найдете описание этих методов в справочной системе Java WorkShop.


      Содержание раздела