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>