appendix> net> URL TOPUPPREVNEXT

java.net.URL

【主な機能】

URL(Uniform Resource Locator) を組み立てたり、 URL の要素を取り出したりするためのクラスです。 リソースのプロトコルが HTTPJAR であれば、 このクラスのインスタンスを URLConnection などに渡して通信をおこなうことができます。 たとえば、ネットワーク上のリソースから文字や文字列を読み込むまでの段取りは概ね以下のようになります。
文字列のURL
 ↓ new URL
URLクラスのインスタンス
 ↓ openConnection
URLConnectionクラスのインスタンス
 ↓ コネクションの設定とコネクト
 ↓ コネクション情報の獲得(任意)
 ↓ getInputSteam
InputStreamクラスのインスタンス
 ↓ new BufferedReader
文字列ストリーム
 ↓ read や readLine など(繰り返し実行)
文字や行(文字列)

【URL】

リソース(ファイル)の所在地と構造を記述する方法です。 便宜上3種類にわけて説明します。

[形式1] scheme://user@machine.domain:port/path?query#fragment

URL genaral format

スキームはファイルに対するアクセスの方法を表現するもので、 通常プロトコルの名前を指定します。 http(hyper text transfer protocol)、 ftp(file transfer protocol) など があります。プロトコルではありませんが、 自分のコンピュータのファイルをアクセスする場合 file と指定できます。 通常コンピュータ内のファイルを指定する場合には、 形式2(絶対パス)や形式3(相対パス)を使います。

サーバ名は、ファイルが置かれているコンピュータの名前とドメイン名です。 LAN などでは、コンピュータ名だけのこともあります。 IP アドレスで指定することも可能です。 user@ はパスワードのために用意された欄で使われることは稀です。 :port は通常省略し スキームによって決まっているポート番号を使います。

パス名は、コンピュータ内のファイルの所在地を示します。 先頭の / の後に ~directory のように チルドの付いた特別の名前を指定することもあります。 パス名の中にコロンで区切ったパラメタを指定することもあります。

# 以降は URL の一部ではありませんが、 ファイル内の特定の部分を指すためのものです。

[形式2] /path/file.ext

スラッシュで始まるURLは絶対パス名とよばれ、 ファイルの位置をそのコンピュータのルートからのパスで指定します。

[形式3] path/file.ext

相対パス名とよばれるもので、現在参照しているファイルからの相対位置を指定します。 .. で親のディレクトリを表現します。

【URLエンコーディング】

URL の構文には様々な特殊記号がつかわれます。 またファイルの存在場所も様々な文字や記号で名前が付けられます。 さらに、インターネットを通過する保証があるのは、 7ビットの印刷できる文字(図形文字)だけです。 これらに対処するために、URL エンコーディングという仕組みがあります。 英数字、ハイフン以外の文字を名前の一部に使用する場合、 % の後にその文字の符号を16進2桁で指定することができます。

【関連するクラス】

java.lang.Object
       ├java.net.URL
       ├java.lang.ClassLoader
       │    └java.security.SecureClassLoader
       │         └java.net.URLClassLoader
       ├java.net.URLConnection
       ├java.net.URLDecoder
       └java.net.URLEncoder

【主なコンストラクタ】

コンストラクタ機能
URL ( String spec ) spec を URL オブジェクトにします。
URL (
String scheme ,
String server ,
String path )
スキームが scheme 、 サーバ名が server、 パスおよびファイルが path の URL を作成します。

【よく使われるメソッド】

メソッド機能
URLConnection openConnection ( ) この URL で示されるリモートオブジェクトへの URLConnection を返します。
このメソッドが呼び出されるたびに、新しい接続が開設されます。
URLConnectionクラスは絶対クラスで、具体的には HttpURLConnectionJarURLConnection が実装されています。 コネクションが成立したプロトコルが HTTP であれば、 HttpURLConnection が返され、 JAR であれば、 JarURLConnection が返されます。
IOException が発生する可能性があります。
InputStream openStream ( ) openConnection().getInputStream() の短縮形です。


更新日:2004-03-13