Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
ftp://myserver.ru/pub/docs/Java/JavaCourse.txt
Затем можно воспользоваться методом openStream(), который возвращает InputStream, что позволяет считать содержимое ресурса. Напри-
569
мер, следующая программа при помощи LineNumberReader считывает первую страницу сайта http://www.ru и выводит ее на консоль.
import java.io.*; importjava.net.*;
public class Net {
public static void main(String args[]) { try {
URL uri = new URL("http://www.ru"); LineNumberReader r = new LineNumberReader(new
lnputStreamReader(url.openStream())); String s = r.readLine(); while (s!=null) {
System.out.println(s);
s = r.readьneO;
}
System.out. println(r.getLineNumber()); r.close();
} catch (MalformedURLException e) {
e. printStackTrace( ) ; } catch (lOException e) {
e. printStackTrace() ;
}
}
}
Из примера мы видим, что работа с сетью, как и работа с потоками, требует дополнительной работы с исключительными ситуациями. Ошибка MalformedURLException появляется в случае, если строка с URL содержит ошибки.
Более функциональным классом является URLConnection, который можно получить с помощью метода класса URL.openConnectionQ. У этого класса есть два метода - getlnputStream() (именно с его помощью работает URL.openStreamO) и getOutputStream(), который можно использовать для передачи данных на сервер, если он поддерживает такую операцию (многие публичные web-серверы закрыты для таких действий).
Класс URLConnection является абстрактным. Виртуальная машина предоставляет реализации этого класса для каждого протокола, например, в том же пакете java.net определен ктасс HttpURLConnection. Понятно, что классы URL и URLConnection предоставляют возможность работы через сеть на прикладном уровне с помощью высокоуровневых протоколов.
naKeTJava.net также предоставляет доступ к протоколам более низкого уровня - TCP и UDP. Для этого сначала надо ознакомиться с классом InetAddress, который является Internet-адресом, или IP. Экземпляры этого класса создаются не с помощью конструкторов, а с помощью статических методов:
InetAddress getLocalHost() InetAddress getByName(String name) lnetAddress[] getAIIByName(String name)
Первый метод возвращает IP-адрес машины, на которой исполняется Java-программа