Java获取URL对应的资源
认识IP、认识URL是进行网络编程的第一步。java.net.URL提供了丰富的URL构建方式,并可以通过java.net.URL来获取资源。
一、认识URL
类 URL
代表一个统一资源定位符,它是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。
简单的可以把URL理解为包含:协议、主机名、端口、路径、查询字符串和参数等对象。每一段可以独立设置。
应用程序也可以指定一个“相对 URL”,它只包含到达相对于另一个 URL 的资源的足够信息。HTML 页面中经常使用相对 URL。
相对 URL 不需要指定 URL 的所有组成部分。如果缺少协议、主机名称或端口号,这些值将从完整指定的 URL 中继承。
由于 URL 不懂 URL 转义,所以它不会识别同一 URL 的对等编码和解码形式。
注意,URI
类在某些特定情况下对其组成字段执行转义。建议使用 URI
管理 URL 的编码和解码,并使用 toURI()
和 URI.toURL()
实现这两个类之间的转换。
(以上介绍来自Java API doc)
二、URL对象的构建
方式很多,可以看看API文档。
三、获取URL指定的资源
下面给个例子,说明如何获取到指定的资源。
import
java.io.*;
import
java.net.URL;
import
java.net.URLConnection;
public
class
TestURL {
public
static
void
main(String[] args) throws
IOException {
test4();
test3();
test2();
test();
}
/**
* 获取URL指定的资源。
*
* @throws IOException
*/
public
static
void
test4() throws
IOException {
URL url = new
URL(\"http://lavasoft.blog.51cto.com/p_w_upload/200811/200811271227767778082.jpg\");
//获得此 URL 的内容。
Object obj = url.getContent();
System.out.println(obj.getClass().getName());
}
/**
* 获取URL指定的资源
*
* @throws IOException
*/
public
static
void
test3() throws
IOException {
URL url = new
URL(\"http://www.hrtsea.com/down/soft/45.htm\");
//返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。
URLConnection uc = url.openConnection();
//打开的连接读取的输入流。
InputStream in = uc.getInputStream();
int
c;
while
((c = in.read()) != -1)
System.out.print(c);
in.close();
}
/**
* 读取URL指定的网页内容
*
* @throws IOException
*/
public
static
void
test2() throws
IOException {
URL url = new
URL(\"http://www.hrtsea.com/down/soft/45.htm\");
//打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。
Reader reader = new
InputStreamReader(new
BufferedInputStream(url.openStream()));
int
c;
while
((c = reader.read()) != -1) {
System.out.print((char
) c);
}
reader.close();
}
/**
* 获取URL的输入流,并输出
*
* @throws IOException
*/
public
static
void
test() throws
IOException {
URL url = new
URL(\"http://lavasoft.blog.51cto.com/62575/120430\");
//打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。
InputStream in = url.openStream();
int
c;
while
((c = in.read()) != -1)
System.out.print(c);
in.close();
}
}
四、Java所支持的URL类型
import
java.net.URL;
public
class
MainClass {
public
static
void
main(String[] args) {
String host = \"www.java2s.com\"
;
String file = \"/index.html\"
;
String[] schemes = {\"http\"
, \"https\"
, \"ftp\"
, \"mailto\"
, \"telnet\"
, \"file\"
, \"ldap\"
, \"gopher\"
,
\"jdbc\"
, \"rmi\"
, \"jndi\"
, \"jar\"
, \"doc\"
, \"netdoc\"
, \"nfs\"
, \"verbatim\"
, \"finger\"
, \"daytime\"
,
\"systemresource\"
};
for
(int
i = 0; i < schemes.length; i++) {
try
{
URL u = new
URL(schemes[i], host, file);
System.out.println(schemes[i] + \" is supported\\r\\n\"
);
} catch
(Exception ex) {
System.out.println(schemes[i] + \" is not supported\\r\\n\"
);
}
}
}
}
另外,还可以通过协议处理器自定义协议。
分享到:
相关推荐
Java URL转换工具是一种用于解析和处理URL的程序,它能够帮助开发者获取URL背后的真实地址,尤其是在面对重定向、参数编码等情况时。在Web开发中,URL(Uniform Resource Locator)是互联网资源的统一地址,它包含了...
2. **获取URL内容**:使用Java的`java.net.URL`和`java.net.URLConnection`类来打开和读取URL的内容。确保设置`URLConnection`的`setUseCaches(false)`和`setDoInput(true)`,以便获取最新的网页内容。 3. **处理...
标题“Java禁止直接URL访问图片”涉及到的是网络资源保护和权限控制的问题,主要知识点包括: 1. **HTTP请求与响应**: 当用户通过浏览器或其他客户端工具输入一个URL来访问图片时,实际上是发送了一个HTTP GET...
这段代码首先创建了一个`URL`对象,然后调用`openConnection()`方法打开与该URL对应的连接。这个连接可以是HTTP、HTTPS等各种协议的。接着,我们通过`getInputStream()`获取网页的输入流,并使用`BufferedReader`...
首先,我们需要了解Java中的`java.net.URL`类,它代表一个统一资源定位符,是访问互联网资源的入口。通过`URL`对象,我们可以获取到网络资源,进行读取或写入操作。在下载大文件时,我们会用到`URL.openStream()`...
在本案例中,"Java使用JavaBean封装和连接URL"涉及到如何利用JavaBean来处理网络请求,尤其是通过URL来获取网络资源。下面将详细阐述这个过程。 首先,JavaBean的创建通常包括以下步骤: 1. 创建一个公共类,此类应...
通过调用URL对象的`openConnection()`方法,我们可以获取到与URL对应的连接。这个连接可以用来设置请求属性,如HTTP头字段,以及建立实际的数据传输。 3. **输入/输出流**:下载过程本质上是通过网络从服务器读取...
1. **获取URL内容**:使用java.net.URL和java.net.URLConnection类来建立与指定URL的连接,并获取输入流。 2. **读取输入流**:通过BufferedReader或InputStreamReader从URL的输入流中读取数据。 3. **写入本地文件*...
在Java开发中,将图片上传到服务器并返回可下载的URL是常见的功能需求,尤其在Web应用中。这里我们将详细探讨实现这一功能的关键步骤和技术点。 首先,客户端(通常是前端应用)需要通过HTTP请求将图片文件发送到...
在Java编程中,后台调用URL路径并传递参数是一项常见的任务,这通常涉及到网络请求的实现。Java提供了多种库来处理这种需求,如HttpURLConnection、Apache HttpClient等。在这个场景下,我们将重点讨论使用Apache ...
这篇博客文章“java获取省市县数据”可能讲述了如何利用Java语言来获取并处理中国各级行政区域的数据,如省、市、县。这在开发需要地域信息的应用程序,如物流系统、地图服务或者数据分析时非常有用。下面我们将深入...
URL 是 URI 的一个子集,它提供了资源的具体位置,可以用来获取资源。URL 的结构通常包含协议、主机地址和资源路径。 URN 则与 URL 不同,它提供了一个独立于位置的资源名称,旨在为资源提供一个持久不变的标识,...
这两个方法可以从类路径中查找指定的资源文件,并返回一个URL对象或输入流,便于我们进一步处理。例如,获取名为"config.properties"的属性文件,我们可以这样编写代码: ```java InputStream inputStream = ...
当需要从网络上获取资源时,应该使用URL类;如果只是需要标识一个资源,不涉及实际的访问,那么URI类更为合适。例如,在处理XML文档时,可能需要使用URI来标识命名空间,而不会涉及到实际的数据传输。 总的来说,...
在这个例子中,我们创建了两个URL对象,分别对应"www.example.com/path1"和"www.example.com/path2"的资源。然后通过调用`URL`对象的`getHost()`方法获取主机名,并使用`equals()`方法比较它们是否相等。 除了基本...
在Java编程中,处理URL(统一资源定位符)参数是一项常见的任务,特别是在处理HTTP请求时。本文将详细讲解如何在Java中截取和解析URL参数。 首先,我们要明白URL的基本结构,它通常由协议、主机名、路径和查询字符...
这两个方法都是在类路径中查找资源,返回一个URL对象,从中可以获取路径信息。例如,如果我们有一个名为`MyClass.class`的类,我们可以这样获取其路径: ```java MyClass.class.getResource("/MyClass.class")....
### Java工程中资源文件的用法详解 #### 概述 资源文件,通常指的是`.properties`文件,这类文件采用键值对的形式存储数据,广泛应用于Java项目中存储配置信息、国际化字符串等。通过使用`java.util.Properties`类...
此段代码首先尝试使用指定的URL字符串创建一个`URL`对象,然后调用`openStream()`方法打开一个到该URL所引用资源的连接,并获取一个输入流。如果在这个过程中出现任何异常,则捕获这些异常并打印出错误信息,同时将`...
你需要读取这个Excel文件,使用Java的Apache POI库或者JExcelApi来解析,获取到对应地区的编码,然后用这些编码作为查询参数。 4. **高德地图API集成** 高德地图的天气API可能需要用户的位置信息,因此可能需要...