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

Java URL类的用法(附带实例)

用户在浏览器中使用 URL 时,一般是在浏览器的地址栏中输入 URL,此时的 URL 是以字符串的形式存在的。

在 Java 中,基于面向对象的编程思想,使用 java.net.URL 类对 URL 进行抽象,使用类中的属性封装 URL 的各组成部分的内容,如协议、主机名和端口号等,使用一个 URL 类的对象代表现实中的一个 URL。值得注意的是,

URL 类中还包含基于该 URL 创建网络连接的方法。

URL 类常用的构造方法如下:
URL 类常用的方法如下:

方法名 功能
InputStream openStream() 打开到此 URL 的网络连接,并返回一个输入流。
URLConnection openConnection() 打开到此 URL 的网络连接,并返回一个 URLConnection 对象。
public String getPath() 返回 URL 路径部分。
public String getQuery() 返回 URL 查询部分。
public String getAuthority() 获取此 URL 的授权部分。
public int getPort() 返回 URL 端口部分。
public int getDefaultPort() 返回协议的默认端口号。
public String getProtocol() 返回 URL 的协议。
public String getHost() 返回 URL 的主机。
public String getFile() 返回 URL 文件名部分。
public String getRef() 获取此 URL 的锚点(也称为引用)。

【实例】使用 URL 类获取 URL 相关的参数信息。
import java.io.IOException;
import java.net.URL;

public class Example {
    public static void main(String[] args) {
       try {
           // www.broadview.com.cn/
           URL url = new URL("https://c.biancheng.net/");
           System.out.println("URL 为:" + url.toString());
           System.out.println("协议为:" + url.getProtocol());
           System.out.println("验证信息:" + url.getAuthority());
          
           System.out.println("文件名及请求参数:" + url.getFile());
           System.out.println("主机名:" + url.getHost());
           System.out.println("路径:" + url.getPath());
           System.out.println("端口:" + url.getPort());
           System.out.println("默认端口:" + url.getDefaultPort());
           System.out.println("请求参数:" + url.getQuery());
           System.out.println("定位位置:" + url.getRef());
       } catch (IOException e) {
           e.printStackTrace();
       }
    }
}
运行结果为:

URL 为:https://c.biancheng.net/
协议为:https
验证信息:c.biancheng.net
文件名及请求参数:/
主机名:c.biancheng.net
路径:/
端口:-1
默认端口:443
请求参数:null
位置:null


【实例 2】使用 URL 类读取网页内容。
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;

public class Example {
    public static void main(String[] args) {
        try {
            // www.broadview.com.cn/
            URL url = new URL("https://c.biancheng.net/");
            InputStream is = url.openStream();
            InputStreamReader isr = new InputStreamReader(is, "utf-8");
            BufferedReader br = new BufferedReader(isr);
            String data = br.readLine();
            while(data != null){
                System.out.println(data);
                data = br.readLine();
            }
            br.close();
            isr.close();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}
运行结果为(部分输出):
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <title>C语言中文网:C语言程序设计门户网站(入门教程、编程软件)</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0">
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="format-detection" content="telephone=no" />
    <link rel="shortcut icon" href="/favicon.ico">
</head>

相关文章