- Java教程
- Java - 主页
- Java - 概述
- Java - 环境设置
- Java - 基本语法
- Java - 变量类型
- Java - 基本数据类型
- Java - 基本运算符
- Java 控制语句
- Java - 循环控制
- Java - 决策
- Java - 如果-否则
- Java-开关
- Java - For 循环
- Java - For-Each 循环
- Java - While 循环
- Java - do-while 循环
- Java - 中断
- Java - 继续
- 面向对象编程
- Java - 对象和类
- Java - 方法
- Java - 构造函数
- Java - 访问修饰符
- Java-继承
- Java-多态性
- Java - 重写
- Java-抽象
- Java-封装
- Java - 接口
- Java - 包
- Java - 内部类
- Java 数据类型
- Java - 字符
- Java 文件处理
- Java - 文件和 I/O
- Java 错误与异常
- Java - 异常
- Java多线程
- Java-多线程
- Java同步
- Java-同步
- Java-线程间通信
- Java-线程死锁
- Java-线程控制
- Java网络
- Java-网络
- Java-URL 处理
- Java - 泛型
- Java集合
- Java - 集合
- Java列表接口
- Java - 列表接口
- Java队列接口
- Java - 队列接口
- Java地图接口
- Java - 地图接口
- Java - SortedMap 接口
- Java设置接口
- Java - 设置接口
- Java - SortedSet 接口
- Java数据结构
- Java - 数据结构
- Java-枚举
- Java 集合算法
- Java - 集合
- Java - 迭代器
- Java - 比较器
- Java杂项
- Java - 正则表达式
- Java-序列化
- Java - 发送电子邮件
- Java - Applet 基础知识
- Java - 文档
- Java 有用资源
- Java - 问题与解答
- Java - 快速指南
- Java - 有用的资源
- Java - 讨论
- Java - 示例
Java-URL 处理
URL 代表统一资源定位符,代表万维网上的资源,例如网页或 FTP 目录。
本节向您展示如何编写与 URL 通信的 Java 程序。URL 可以分为几个部分,如下所示 -
protocol://host:port/path?query#ref
协议示例包括 HTTP、HTTPS、FTP 和文件。路径也称为文件名,主机也称为权限。
以下是协议为 HTTP 的网页的 URL -
https://www.amrood.com/index.htm?language=en#j2se
请注意,此 URL 未指定端口,在这种情况下,将使用协议的默认端口。对于 HTTP,默认端口是 80。
构造函数
java.net.URL类代表一个 URL,并拥有一整套在 Java 中操作 URL 的方法。
URL 类有几个用于创建 URL 的构造函数,包括以下内容 -
先生。 | 构造函数和描述 |
---|---|
1 | public URL(字符串协议,字符串主机,int端口,字符串文件)抛出MalformedURLException 通过将给定部分组合在一起创建 URL。 |
2 | public URL(字符串协议,字符串主机,字符串文件)抛出 MalformedURLException 与前面的构造函数相同,只是使用给定协议的默认端口。 |
3 | public URL(String url) 抛出 MalformedURLException 从给定的字符串创建 URL。 |
4 | public URL(URL context, String url) 抛出 MalformedURLException 通过解析 URL 和字符串参数来创建 URL。 |
URL 类包含许多用于访问所表示的 URL 的各个部分的方法。URL 类中的一些方法包括以下内容 -
先生。 | 方法及说明 |
---|---|
1 | 公共字符串 getPath() 返回 URL 的路径。 |
2 | 公共字符串 getQuery() 返回 URL 的查询部分。 |
3 | 公共字符串 getAuthority() 返回 URL 的权限。 |
4 | 公共 int getPort() 返回 URL 的端口。 |
5 | 公共 int getDefaultPort() 返回 URL 协议的默认端口。 |
6 | 公共字符串 getProtocol() 返回 URL 的协议。 |
7 | 公共字符串 getHost() 返回 URL 的主机。 |
8 | 公共字符串 getHost() 返回 URL 的主机。 |
9 | 公共字符串 getFile() 返回 URL 的文件名。 |
10 | 公共字符串 getRef() 返回 URL 的引用部分。 |
11 | public URLConnection openConnection() 抛出 IOException 打开与 URL 的连接,允许客户端与资源进行通信。 |
例子
以下 URLDemo 程序演示了 URL 的各个部分。在命令行中输入 URL,URLDemo 程序输出给定 URL 的每个部分。
// File Name : URLDemo.java import java.io.IOException; import java.net.URL; public class URLDemo { public static void main(String [] args) { try { URL url = new URL("https://www.tutorialspoint.com/index.htm?language=en#j2se"); System.out.println("URL is " + url.toString()); System.out.println("protocol is " + url.getProtocol()); System.out.println("authority is " + url.getAuthority()); System.out.println("file name is " + url.getFile()); System.out.println("host is " + url.getHost()); System.out.println("path is " + url.getPath()); System.out.println("port is " + url.getPort()); System.out.println("default port is " + url.getDefaultPort()); System.out.println("query is " + url.getQuery()); System.out.println("ref is " + url.getRef()); } catch (IOException e) { e.printStackTrace(); } } }
该程序的示例运行将产生以下结果 -
输出
URL is https://www.tutorialspoint.com/index.htm?language=en#j2se protocol is https authority is www.tutorialspoint.com file name is /index.htm?language=en host is www.tutorialspoint.com path is /index.htm port is -1 default port is 443 query is language=en ref is j2se
URLConnections 类方法
openConnection() 方法返回java.net.URLConnection,这是一个抽象类,其子类表示各种类型的 URL 连接。
例如 -
如果连接到协议为 HTTP 的 URL,则 openConnection() 方法将返回 HttpURLConnection 对象。
如果连接到表示 JAR 文件的 URL,则 openConnection() 方法将返回 JarURLConnection 对象等。
URLConnection 类有许多用于设置或确定有关连接的信息的方法,包括以下内容 -
先生。 | 方法及说明 |
---|---|
1 | 对象获取内容() 检索此 URL 连接的内容。 |
2 | 对象 getContent(Class[] 类) 检索此 URL 连接的内容。 |
3 | 字符串 getContentEncoding() 返回内容编码标头字段的值。 |
4 | int getContentLength() 返回内容长度标头字段的值。 |
5 | 字符串 getContentType() 返回内容类型标头字段的值。 |
6 | int getLastModified() 返回最后修改的标头字段的值。 |
7 | 长 getExpiration() 返回过期标头字段的值。 |
8 | 长 getIfModifiedSince() 返回此对象的 ifModifiedSince 字段的值。 |
9 | 公共无效setDoInput(布尔输入) 传入 true 表示该连接将用于输入。默认值为 true,因为客户端通常从 URLConnection 读取。 |
10 | 公共无效setDoOutput(布尔输出) 传入 true 表示该连接将用于输出。默认值为 false,因为许多类型的 URL 不支持写入。 |
11 | public InputStream getInputStream() 抛出 IOException 返回用于从资源读取的 URL 连接的输入流。 |
12 | public OutputStream getOutputStream() 抛出 IOException 返回用于写入资源的 URL 连接的输出流。 |
13 | 公共 URL getURL() 返回此 URLConnection 对象连接到的 URL。 |
例子
以下 URLConnectionDemo 程序连接到从命令行输入的 URL。
如果 URL 表示 HTTP 资源,则连接将强制转换为 HttpURLConnection,并且一次读取资源中的数据。
// File Name : URLConnDemo.java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; public static void main(String [] args) { try { URL url = new URL("https://www.tutorialspoint.com"); URLConnection urlConnection = url.openConnection(); HttpURLConnection connection = null; if(urlConnection instanceof HttpURLConnection) { connection = (HttpURLConnection) urlConnection; }else { System.out.println("Please enter an HTTP URL."); return; } BufferedReader in = new BufferedReader( new InputStreamReader(connection.getInputStream())); String urlString = ""; String current; while((current = in.readLine()) != null) { urlString += current; } System.out.println(urlString); } catch (IOException e) { e.printStackTrace(); } } }
该程序的示例运行将产生以下结果 -
输出
$ java URLConnDemo .....a complete HTML content of home page of tutorialspoint.com.....