Java URL类的用法(附带实例)
用户在浏览器中使用 URL 时,一般是在浏览器的地址栏中输入 URL,此时的 URL 是以字符串的形式存在的。
在 Java 中,基于面向对象的编程思想,使用 java.net.URL 类对 URL 进行抽象,使用类中的属性封装 URL 的各组成部分的内容,如协议、主机名和端口号等,使用一个 URL 类的对象代表现实中的一个 URL。值得注意的是,
URL 类中还包含基于该 URL 创建网络连接的方法。
URL 类常用的构造方法如下:
URL 类常用的方法如下:
【实例】使用 URL 类获取 URL 相关的参数信息。
【实例 2】使用 URL 类读取网页内容。
在 Java 中,基于面向对象的编程思想,使用 java.net.URL 类对 URL 进行抽象,使用类中的属性封装 URL 的各组成部分的内容,如协议、主机名和端口号等,使用一个 URL 类的对象代表现实中的一个 URL。值得注意的是,
URL 类中还包含基于该 URL 创建网络连接的方法。
URL 类常用的构造方法如下:
- URL(String spec):根据字符串表示形式创建 URL 对象;
- URL(String protocol,String host,String file):根据指定的协议名、主机名和文件名创建 URL 对象;
- URL(String protocol,String host,int port,String file):根据指定的协议名、主机名、端口号和文件名创建 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>
ICP备案:
公安联网备案: