輸入java URIDemo
命令後
列表
的輸出結果如下
query://:
/public/manuals/appliances?stove#ge:
Authority = :
Fragment = ge
Host =
Path = /public/manuals/appliances
Port =
Query = stove
Scheme = query
//:
/public/manuals/appliances?stove
User Info = jeff
URI is absolute: true
URI is opaque: false
上面的輸出顯示該URI是絕對的
因為它指定了一個大綱(query)
並且該URI是分層的
因為query後面有/符號
技巧 你應該調用URI的compareTo(Object o)和equals(Object o)來決定URI的次序(為了排序目的)和等同性
你可以參考SDK文檔
查閱這些方法的更多信息
URI類支持基本的URI操作
包括標准化(normalization)
分解(resolution)和相對化(relativization)
標准化是通過URI的normalize()方法支持的
調用normalize()時
它返回對新URI對象的引用
該對象包含調用的URI對象的URI的標准的表現
列表
演示了normalize()方法
它把URI作為程序的唯一的參數
URIDemo
打印出標准的相等的URI
列表
: URIDemo
java
// URIDemo
java
import
*;
class URIDemo
{
ublic static void main (String [] args) throws Exception
{
if (args
length !=
)
{
System
err
println (
usage: java URIDemo
uri
);
return;
}
URI uri = new URI (args [
]);
System
out
println (
Normalized URI =
+
uri
normalize ()
toString ());
}
}
在編譯URIDemo
後
在命令行輸入java URIDemo
x/y/
/z/
/q
將看到下面的輸出
Normalized URI = x/z/q
上面的輸出顯示y
和
消失了
這是因為
意味著你想直接在x下面訪問名字空間的z部分
意味著你希望訪問與z部分相關的名字空間的q部分
URI通過提供resolve(String uri)
resolve(URI uri)和relativize(URI uri)方法支持反向解析和相對化操作
如果uri引用是空的(null)這三個方法都會產生NullPointerException對象
同樣
如果指定的URI違反了RFC
語法規則
resolve(String uri)通過的內部的create(String uri)調用間接地產生一個IllegalArgumentException對象
列表
的代碼演示了resolve(String uri)和relativize(URI uri)
列表
: URIDemo
java
// URIDemo
java
import
*;
class URIDemo
{
ublic static void main (String [] args) throws Exception
{
if (args
length !=
)
{
System
err
println (
usage:
+
java URIDemo
uriBase uriRelative
);
return;
}
URI uriBase = new URI (args [
]);
System
out
println (
Base URI =
+uriBase
toString ());
URI uriRelative = new URI (args [
]);
System
out
println (
Relative URI =
+uriRelative
toString ());
URI uriResolved = uriBase
resolve (uriRelative);
System
out
println (
Resolved URI =
+uriResolved
toString ());
URI uriRelativized = uriBase
relativize (uriResolved);
System
out
println (
Relativized URI =
+uriRelativized
toString ());
}
}
在編譯URIDemo
後
在命令行輸入java URIDemo
x/
/y
輸出如下
Base URI =
Relative URI = x/
/y
Resolved URI =
Relativized URI = y
上面的輸出顯示相對的URI的x/
/y根據基礎URI 分解並(在宮
相對的URI
技巧 調用URI的toURL()方法把URI轉換為URL
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25567.html