# 直接从 URL 中读取
您已成功建立 URL 后 ,你可以调用 URL 的 openStream() 方法来获得从中可以读取 URL 的内容流。 该 openStream() 方法返回一个 java.io.InputStream 对象,因此从 URL 读取与从输入流读取一样简单。
下面的小 Java 程序使用 openStream() 来获得 URL http://www.oracle.com/ 的输入流。 然后,它在输入流上打开一个 BufferedReader,并从 BufferedReader 中读取,从而读取 URL。 所有读取的内容都被复制到标准输出流:
public class URLReader {
public static void main(String[] args) throws Exception {
URL oracle = new URL("https://www.oracle.com/index.html");
BufferedReader in = new BufferedReader(
new InputStreamReader(oracle.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
你可以看到输出内容为指定网址的网页信息,或者,该程序可能会挂起,或者您可能会看到异常堆栈跟踪。 如果发生后两个事件中的任何一个,您可能必须设置代理主机,以便程序可以找到 Oracle 服务器。
有一个问题需要注意:如果打开的是一个需要重定向的链接,那么不会有任何信息; 就相当于 url 不能自动处理重定向事件;比如把链接换成 “http://www.oracle.com”
# 设置代理
该路径不是该课程的内容;只是为了方便粘贴过来了;
您可以通过命令行设置代理主机。根据您的网络配置,您可能还需要设置代理端口。如有必要,请询问系统管理员网络上的代理主机名称。
UNIX
java -Dhttp.proxyHost=proxyhost
[-Dhttp.proxyPort=portNumber] URLReader
DOS shell (Windows 95/NT)
java -Dhttp.proxyHost=proxyhost
[-Dhttp.proxyPort=portNumber] URLReader
1
2
3
4
5
6
7
2
3
4
5
6
7