[java]URIとURL 2006/08/31
2008/01/20

java.net.URIクラスには toURLメソッドが用意されています。

ですが、java.net.URLクラスには、toURIメソッドがありません。



何故にそういう疑問をもつにいたったかといいますと、





URI は Uniform Resource Identifier であり、URL は Uniform Resource Locator です。したがって、抽象的に言えば、すべての URL は URI ですが、すべての URI が URL であるとはかぎりません。



javadoc1.4 日本語版 java.net.URIの説明より





という説明を読んで、単純にすべてのURLはURIなら、toURIメソッドをURLクラスがもっていてもいいのではないか、と思ったからです。



似たような疑問をもった方がいました。

http://www.teria.com/~koseki/emacswiki/FileUriUrl.html





相互変換は簡単にできます。

http://javaalmanac.com/egs/java.net/Url2Uri.html?l=rel



下記のコードは、http://javaalmanac.com/egs/java.net/Url2Uri.html?l=relで紹介されていたものです。



try {

url = uri.toURL();

} catch (IllegalArgumentException e) {

// URI was not absolute

} catch (MalformedURLException e) {

}



// Convert a URL to a URI

try {

uri = new URI(url.toString());

} catch (URISyntaxException e) {

}

: