首页 > 编程笔记 > Java笔记 阅读:3

Java URL类用法详解(附带实例)

java.net 包中的 URL 类是对统一资源定位符(Uniform Resource Locator)的抽象,使用 URL 创建对象的应用程序称为客户端程序,一个 URL 对象存放着一个具体资源的引用,表明客户要访问这个 URL 中的资源,利用 URL 对象可以获取 URL 中的资源。

一个 URL 对象通常包含最基本的三部分信息,分别是协议、地址、资源:
URL 是指向互联网“资源”的指针。通过 URL 标识,就可以利用各种网络协议来获取远端计算机上的资源或信息,从而方便快捷地开发出 Internet 应用程序。URL 的格式如下:
传输协议名://主机名:端口号/文件名#引用

在上述格式中,端口号、文件名和引用是可选的。传输协议名和主机名是必需的。当没有给出传输协议名时,浏览器默认的传输协议是 HTTP,下面都是合法的 URL:
http://java.sun.com/index.html
http://java.sun.com/index.html#chapter1
http://192.168.0.1:7001
http://192.168.0.1:7001/port/index.html#myedu

Java URL类

URL 类是 Java 语言提供的支持 URL 编程的基础类,其类路径是 java.net.URL。

URL 类的构造方法如下:
另外,URL 类还有以下用来操作 URL 的方法:

方法名称 描述
Object getContent() 获取此 UR 的内容。
int getDefaultPort() 获取与此 URL 关联协议的默认端口号。
String getFile() 获取此 URL 的文件名。
String getHost() 获取此 URL 的主机名(如果适用)。
String getPath() 获取此 URL 的路径部分。
int getPort() 获取此 URL 的端口号。
String getProtocol() 获取此 URL 的协议名称。
String getRef() 获取此 URL 的锚点(也称为“引用”)。
URLConnection openConnection() 返回一个 URLConnection 对象,表示到 URL 所引用的远程对象的连接。
InputStream openStream() 打开到此 URL 的连接,并返回一个用于从该连接读入的 InputStream。

下面通过一个案例来演示 URL 编程方法。

【实例】使用 URL 类获取远端主机上指定文件的内容。功能实现:创建一个参数为“http://www.baidu.com/index.html”的 URL 对象,然后读取这个对象的文件。
import java.io.*;
import java.net.URL;
public class URLTest {
    public static void main(String[] args) throws Exception {
        // 创建 URL 对象
        URL url = new URL("http://www.baidu.com/index.html");
        // 创建 InputStreamReader 对象
        InputStreamReader is = new InputStreamReader(url.openStream());
        System.out.println("协议: " + url.getProtocol()); // 显示协议名
        System.out.println("主机: " + url.getHost()); // 显示主机名
        System.out.println("端口: " + url.getPort()); // 显示端口号
        System.out.println("路径: " + url.getPath()); // 显示路径名
        System.out.println("文件: " + url.getFile()); // 显示文件名
        BufferedReader br = new BufferedReader(is); // 创建 BufferedReader 对象
        String inputLine;
        System.out.println("文件内容: ");
        // 按行从缓冲输入流循环读字符,直到读完所有行
        while ((inputLine = br.readLine()) != null) {
            System.out.println(inputLine); // 把读取的数据输出到屏幕
        }
        br.close(); // 关闭字符输入流
    }
}
程序运行结果为:

协议: http
主机: www.baidu.com
端口: -1
路径: /index.html
文件: /index.html
文件内容:
<!DOCTYPE html><html><head><title>百度一下,你就知道</title><!-- 其他头部信息 --></head><body><!-- 网页内容 --></body></html>

运行上面程序的计算机需要连接外网,否则系统会产生 <Exception in thread "main" java.net.UnknownHostException:www.baidu.com> 异常。

相关文章