`
sdustyongz
  • 浏览: 89663 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java获取URL对应的资源

阅读更多
(转自:http://www.cn-java.com/www1/?action-viewnews-itemid-11027)

认识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() 实现这两个类之间的转换。


    也可以使用 URLEncoder 和 URLDecoder 类,但是只适用于 HTML 形式的编码,它与 RFC2396 中定义的编码机制不同。


    (以上介绍来自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/attachment/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");
                        }
                }
        }
}
    另外,还可以通过协议处理器自定义协议。
查看全部1条评论
分享到:
评论

相关推荐

    java 版Url转换工具,可得到真实的URL

    Java URL转换工具是一种用于解析和处理URL的程序,它能够帮助开发者获取URL背后的真实地址,尤其是在面对重定向、参数编码等情况时。在Web开发中,URL(Uniform Resource Locator)是互联网资源的统一地址,它包含了...

    java URL转PDF文件(完美支持中文)

    2. **获取URL内容**:使用Java的`java.net.URL`和`java.net.URLConnection`类来打开和读取URL的内容。确保设置`URLConnection`的`setUseCaches(false)`和`setDoInput(true)`,以便获取最新的网页内容。 3. **处理...

    java禁止直接url访问图片

    标题“Java禁止直接URL访问图片”涉及到的是网络资源保护和权限控制的问题,主要知识点包括: 1. **HTTP请求与响应**: 当用户通过浏览器或其他客户端工具输入一个URL来访问图片时,实际上是发送了一个HTTP GET...

    java 使用URL访问网页

    这段代码首先创建了一个`URL`对象,然后调用`openConnection()`方法打开与该URL对应的连接。这个连接可以是HTTP、HTTPS等各种协议的。接着,我们通过`getInputStream()`获取网页的输入流,并使用`BufferedReader`...

    java多线程URL方式下载单个大文件

    首先,我们需要了解Java中的`java.net.URL`类,它代表一个统一资源定位符,是访问互联网资源的入口。通过`URL`对象,我们可以获取到网络资源,进行读取或写入操作。在下载大文件时,我们会用到`URL.openStream()`...

    Java使用JavaBean封装和连接URL.rar

    在本案例中,"Java使用JavaBean封装和连接URL"涉及到如何利用JavaBean来处理网络请求,尤其是通过URL来获取网络资源。下面将详细阐述这个过程。 首先,JavaBean的创建通常包括以下步骤: 1. 创建一个公共类,此类应...

    Java下载器 用 Java 编写的URL下载器 workspace

    通过调用URL对象的`openConnection()`方法,我们可以获取到与URL对应的连接。这个连接可以用来设置请求属性,如HTTP头字段,以及建立实际的数据传输。 3. **输入/输出流**:下载过程本质上是通过网络从服务器读取...

    java swing url下载器

    1. **获取URL内容**:使用java.net.URL和java.net.URLConnection类来建立与指定URL的连接,并获取输入流。 2. **读取输入流**:通过BufferedReader或InputStreamReader从URL的输入流中读取数据。 3. **写入本地文件*...

    java上传图片至服务器并且返回下载URL

    在Java开发中,将图片上传到服务器并返回可下载的URL是常见的功能需求,尤其在Web应用中。这里我们将详细探讨实现这一功能的关键步骤和技术点。 首先,客户端(通常是前端应用)需要通过HTTP请求将图片文件发送到...

    Java语言后台实现调用url路径并传参

    在Java编程中,后台调用URL路径并传递参数是一项常见的任务,这通常涉及到网络请求的实现。Java提供了多种库来处理这种需求,如HttpURLConnection、Apache HttpClient等。在这个场景下,我们将重点讨论使用Apache ...

    java获取省市县数据

    这篇博客文章“java获取省市县数据”可能讲述了如何利用Java语言来获取并处理中国各级行政区域的数据,如省、市、县。这在开发需要地域信息的应用程序,如物流系统、地图服务或者数据分析时非常有用。下面我们将深入...

    关于URI和URN,URL和java中对应的类.pdf

    URL 是 URI 的一个子集,它提供了资源的具体位置,可以用来获取资源。URL 的结构通常包含协议、主机地址和资源路径。 URN 则与 URL 不同,它提供了一个独立于位置的资源名称,旨在为资源提供一个持久不变的标识,...

    java 静态代码块通过类加载器获取资源文件例子

    这两个方法可以从类路径中查找指定的资源文件,并返回一个URL对象或输入流,便于我们进一步处理。例如,获取名为"config.properties"的属性文件,我们可以这样编写代码: ```java InputStream inputStream = ...

    关于URI和URN,URL和java中对应的类.docx

    当需要从网络上获取资源时,应该使用URL类;如果只是需要标识一个资源,不涉及实际的访问,那么URI类更为合适。例如,在处理XML文档时,可能需要使用URI来标识命名空间,而不会涉及到实际的数据传输。 总的来说,...

    java 判断两个网址的主机名是否一样

    在这个例子中,我们创建了两个URL对象,分别对应"www.example.com/path1"和"www.example.com/path2"的资源。然后通过调用`URL`对象的`getHost()`方法获取主机名,并使用`equals()`方法比较它们是否相等。 除了基本...

    Java截取url参数的方法

    在Java编程中,处理URL(统一资源定位符)参数是一项常见的任务,特别是在处理HTTP请求时。本文将详细讲解如何在Java中截取和解析URL参数。 首先,我们要明白URL的基本结构,它通常由协议、主机名、路径和查询字符...

    在Java程序中获取当前运行程序的路径

    这两个方法都是在类路径中查找资源,返回一个URL对象,从中可以获取路径信息。例如,如果我们有一个名为`MyClass.class`的类,我们可以这样获取其路径: ```java MyClass.class.getResource("/MyClass.class")....

    Java工程中资源文件的用法

    ### Java工程中资源文件的用法详解 #### 概述 资源文件,通常指的是`.properties`文件,这类文件采用键值对的形式存储数据,广泛应用于Java项目中存储配置信息、国际化字符串等。通过使用`java.util.Properties`类...

    URL的又有效性判断

    此段代码首先尝试使用指定的URL字符串创建一个`URL`对象,然后调用`openStream()`方法打开一个到该URL所引用资源的连接,并获取一个输入流。如果在这个过程中出现任何异常,则捕获这些异常并打印出错误信息,同时将`...

    天气预报数据获取java代码(风和天气、高德地图)

    你需要读取这个Excel文件,使用Java的Apache POI库或者JExcelApi来解析,获取到对应地区的编码,然后用这些编码作为查询参数。 4. **高德地图API集成** 高德地图的天气API可能需要用户的位置信息,因此可能需要...

Global site tag (gtag.js) - Google Analytics