📅  最后修改于: 2023-12-03 14:42:16.976000             🧑  作者: Mango
Java URL类提供了一个统一资源定位符的接口,其中包括用于打开流以读取和写入的方法,以及用于获取有关 URL 元数据的方法。URL 中包含了协议(例如 http、https、ftp 等)、主机、端口和路径等信息。
可以使用以下构造函数来创建 URL 对象:
URL url = new URL(String protocol, String host, int port, String file);
URL url = new URL(String url);
第一个构造函数用于创建指定协议、主机、端口和路径的 URL。例如:
URL url = new URL("http", "www.baidu.com", 80, "/index.html");
第二个构造函数用于创建通过字符串描述的 URL。例如:
URL url = new URL("http://www.baidu.com/index.html");
可以使用 openStream() 方法打开一个 URL 的输入流,并从中读取内容。例如:
try {
URL url = new URL("http://www.baidu.com");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
可以使用以下方法获取 URL 的元数据:
String getProtocol(); // 获取协议
String getHost(); // 获取主机
int getPort(); // 获取端口
String getFile(); // 获取路径
String getQuery(); // 获取查询字符串
例如:
try {
URL url = new URL("http://www.baidu.com/index.html?a=1&b=2");
System.out.println("Protocol: " + url.getProtocol());
System.out.println("Host: " + url.getHost());
System.out.println("Port: " + url.getPort());
System.out.println("File: " + url.getFile());
System.out.println("Query: " + url.getQuery());
} catch (MalformedURLException e) {
e.printStackTrace();
}
输出结果为:
Protocol: http
Host: www.baidu.com
Port: -1
File: /index.html
Query: a=1&b=2
Java URL 提供了一种方便的方式来处理统一资源定位符,并且可以方便地访问其中的元数据和内容。