当前位置 类层次(JDK) 所有类(JDK) 所有域和方法(JDK)

类 java.net.URL

java.lang.Object
   |
   +----java.net.URL

public final class URL
extends Object
implements Serializable

URL 类表示一个标准的资源定位器,一个指向 WWW “资源”的指针。 一个资源有时可能象一个文件或目录一样简单,也可能是一个更为复杂的对象的引用,例如一个数据库的查询或一个搜索引擎 。 有关 URL 的类型和它们的格式的进一步信息,可以查阅:

一个 URL 一般可以分为几个部分。上一个 URL 例子指明使用的协议是 http (HyperText Transport Protocol,超文本传输协议) 以及信息驻留在名为 www.ncsa.uiuc.edu 的主机上。主机上的信息被命名为 demoweb/url-primer.html 。 主机上的名称的确切含义依赖于协议和主机 。 信息通常存储在文件里,但它也可以在传输过程中生成。 URL 的这个部件称为 file 构件,即使该信息无须存在于一个文件里。

一个 URL 可以有选择的地指定一个“端口",它就是 TCP 连接所用的远程主机的端口号。 如果不指定端口,将使用该协议的缺省值。 例如,http 的缺省端口为 80 。 一替代的端口可以指定为:

URL 可能在尾部附加一个“热点”(anchor),或记为 “ref” 或 “reference”。 热点由加亮的“#”号后紧跟字符来指示。 例如,

热点从技术上讲并不是 URL 的一部分。 但是它表示获得指定的资源后,应用程序对文档的标签为chapter1 的部分感兴趣。标签的涵义特定于不同资源。

应用程序也可以指定“相对 URL”,它仅包含另一相对 URL 资源的充分信息。 相对 URL 经常被 HTML 页面使用。 例如, URL 的内容为:

它包含的相对 URL 为: 它是如下文字的简写:

相对 URL 不需要指定 URL 的所有组成部分。 如果没有协议、主机名、或者端口号码,那么它们的取值将从全路径的指定 URL 继承。 但必须指定文件部分。可选的热点不能继承。


构造子索引

URL(String)
String 生成一个 URL 对象 。
URL(String, String, int, String)
从指定的 protocolhostport 号码, 和 file 生成一个 URL 对象。
URL(String, String, String)
从指定 protocol 名,host 名,和 file 名生成一个绝对的 URL 。
URL(URL, String)
并在指定的上下文里分析规范 spec 而生成一个 URL 。

方法索引

equals(Object)
比较两个 URL 。
getContent()
返回 URL 的内容。
getFile()
返回 URL 的文件名。
getHost()
如果适用,返回 URL 的主机名。
getPort()
返回 URL 的端口号。
getProtocol()
返回 URL 的协议名。
getRef()
返回 URL 的热点部分(也称为”reference“) 。
hashCode()
为散列表索引生成一个合适的整数。
openConnection()
返回一个URLConnection 对象,该对象代表由 URL 指定的到远程对象的连接。
openStream()
打开到 URL 的连接,并返回用于从该连接读取数据的 InputStream
sameFile(URL)
比较两个 URL ,“ref”域除外。
set(String, String, int, String, String)
设置 URL 的域。
setURLStreamHandlerFactory(URLStreamHandlerFactory)
设置一应用的 URLStreamHandlerFactory
toExternalForm()
构造 URL 的字符串表示。
toString()
构造 URL 的字符串表示。

构造子

URL
 public URL(String protocol,
                    String host,
            int port,
            String file) throws MalformedURLException
从指定的 protocolhostport 号码, 和 file 生成一个 URL 对象。 port 指定为 -1 表示 URL 应该使用该协议的缺省端口。

如果它是根据指定协议生成的第一个 URL 对象, 则为该协议生成一个 stream protocol handler 对象和一个 URLStreamHandler 类实例。

  1. 如果该应用程序已经建立了一个 URLStreamHandlerFactory 的实例作为流处理程序工厂,则使用表示该协议的字符串作为参数调用实例方法 createURLStreamHandler创建流协议处理程序。
  2. 如果没有建立 URLStreamHandlerFactory ,或者该工厂的 createURLStreamHandler 方法返回 null,则构造器查找系统属性值:
      java.handler.protol.pkgs
    如果系统属性值不是 null,则它被解释为由符号 '|' 分割开的程序包列表 。 构造器试图加载如下名称的类:
      <package>.<protocol>.Handler
    有 <package>的地方替换成包的名字,<protocol> 替换为协议的名字 。如果该类不存在,或者类虽然存在但它不是 URLStreamHandler 类的子类 ,则列表中的下一个包将被尝试 。
  3. 如果没有查找到协议处理器,则构造器试图加载如下名称的类:
      sun.net.www.protocol.<protocol>.Handler
    如果该类不存在,或者类虽然存在但它不是URLStreamHandler 的子类,则抛出一 MalformedURLException

参数:
protocol - 协议的名称 。
host - 主机名 。
port - 端口号码 。
file - 主机文件 。
抛出: MalformedURLException
如果指定的协议未知。
参见:
getProperty, setURLStreamHandlerFactory, URLStreamHandler, createURLStreamHandler
URL
 public URL(String protocol,
                    String host,
            String file) throws MalformedURLException
从指定 protocol 名,host 名,和 file 名生成一个绝对 URL 。 使用该协议的缺省端口 。

该方法等价于调用四个参数分别为 protocolhost, -1, 和 file 的构造器。

参数:
protocol - 使用的协议 。
host - 连接的主机 。
file - 主机上的文件 。
抛出: MalformedURLException
如果指定的协议未知。
参见:
URL
URL
 public URL(String spec) throws MalformedURLException
String 生成一个 URL 对象。

该构造器等价于调用含有两个参数且第一个参数为 null 的构造器。

参数:
spec - 作为 URL 分析的 String
抛出: MalformedURLException
如果该字符串指定的协议未知。
参见:
URL
URL
 public URL(URL context,
            String spec) throws MalformedURLException
通过在指定的上下文里分析规范 spec而生成一个 URL 。 如果参数 context 不是 null 并且参数 spec 是一 URL 的部分规范,则任何缺失部件的字符串都从参数 context 继承。

分析参数 String 给出的规范来确定它是否指定了一个协议。 如果 String 在第一个 ASCII 字符 '/' 出现之前包含一个 ASCII 字符 ':',则在冒号之前出现的字符构成该协议。

构造器将寻找合适的流协议处理器,其类型为 URLStreamHandler,如下所示:

调用流协议处理程序的 parseURL 方法来分析规范中剩余的域,该规范覆盖了由上下文参数指定的缺省设置。

参数:
context - 分析规范所用的上下文。
spec - 一URL 的 String 表示 。
抛出: MalformedURLException
如果没有指定协议,或者发现一未知的协议。
参见
URL, URLStreamHandler, parseURL

方法

set
 protected void set(String protocol,
                    String host,
                    int port,
                    String file,
                    String ref)
设置 URL 的字段。这不是公用方法,所以只有 URLStreamHandlers 能修改 URL 字段。否则 URL 为常数。 提示: 该方法将移动到 URLStreamHandler 中

参数:
protocol - 使用的协议。
host - 连接的主机名。
port - 连接的协议端口。
file - 在主机上指定的文件名。
ref - 标记。
getPort
 public int getPort()
返回 URL 的端口号。 若端口没有设置,则返回 -1。

返回:
端口号
getProtocol
 public String getProtocol()
返回 URL 的协议名。

返回:
URL 的协议。
getHost
 public String getHost()
如果适用,则返回 URL 的主机名。 对于 “file”协议,这是一个空串。

返回:
URL 的主机名。
getFile
 public String getFile()
返回 URL 的文件名。

返回:
URL 的文件名。
getRef
 public String getRef()
返回 URL 的热点(也称为 “reference”)。

返回:
返回 URL 的热点(也称为“reference”)。
equals
 public boolean equals(Object obj)
比较两个 URL。 当且仅当参数不为 null 且与该对象描述同一 URL对象时,结果为 true。如果两个 URL 有相同的协议,引用相同的主机,在主机上使用相同的端口号码和主机上相同文件,则它们相等。 不比较URL 对象的热点。

该方法等价于:

参数:
obj - 要比较的 URL 。
返回:
如果是相同对象则为 true,否则为 false
覆盖:
Object 中的 equals
hashCode
 public int hashCode()
为散列表索引生成一个合适的整数。

返回:
URL 的散列码。
覆盖:
Object 中的 hashCode
sameFile
 public boolean sameFile(URL other)
比较两个 URL,“ref” 域除外。 返回 true 如果 URL 和参数 other 参考相同的资源 。 这两个URL 可能包含的 anchor 不相同。

参数:
other - 要比较的 URL 对象。
返回:
如果它们引用相同的远程对象,则为 true ;否则为 false
toString
 public String toString()
构造 URL 的字符串表示。 通过调用该对象的流协议处理程序的 toExternalForm 方法来生成该字符串。

返回:
表示此对象的串。
覆盖:
Object 中的 toString
参见:
URL, toExternalForm
toExternalForm
 public String toExternalForm()
构造 URL 的字符串表示。 通过调用该对象的流协议处理程序的 toExternalForm 方法来生成该字符串。

返回:
表示此对象的串。
参见:
URL, toExternalForm
openConnection
 public URLConnection openConnection() throws IOException
返回一个 URLConnection 对象,该对象表示到由 URL 指定的远程对象的连接。

如果不存在打开的连接,则为该 URL 调用协议处理程序的 openConnection方法打开该连接。

返回:
到 URL 的 URLConnection
抛出: IOException
如果发生了一个 I/O 异常
参见:
URL, URLConnection, openConnection
openStream
 public final InputStream openStream() throws IOException
打开到该 URL 的连接,并返回用于从该连接读取数据的 InputStream 。 该方法是如下方法的简写:

返回:
用于从该 URL 连接读取数据的输入流。
抛出: IOException
如果发生了一个 I/O 异常
getContent
 public final Object getContent() throws IOException
返回 URL 的内容。该方法是如下方法的简写:

返回:
URL 的内容。
抛出: IOException
如果发生了一个 I/O 异常
参见:
getContent
setURLStreamHandlerFactory
 public static synchronized void setURLStreamHandlerFactory(URLStreamHandlerFactory fac)
设置一应用程序的 URLStreamHandlerFactory。 该方法最多只能被应用程序调用一次。

URLStreamHandlerFactory 实例用来构造来自协议名称的流协议处理程序。

参数:
fac - 想要用的工厂。
抛出: Error
如果应用程序已设置了工厂。
参见:
URL, URLStreamHandlerFactory

当前位置 类层次(JDK) 所有类(JDK) 所有域和方法(JDK)