Web上の「リソース」を指すポインタであるURL(Uniform Resource Locator)を表すには、java.net.URLクラスを用います。一般的な書式は、下記のとおりです。
「使用するプロトコル」+「ホストの名前」+「情報の名前」
例えば、「http://www.ncsa.uiuc.edu/demoweb/url-primer.html」であれば、
- 使用するプロトコルは「http」
- ホストの名前は「www.ncsa.uiuc.edu」
- 情報の名前は「demoweb/url-primer.html」
この「使用するプロトコル」に「file」を指定すると、ローカルファイルを指すURLになります。ローカルマシンでWebサーバが動作している必要はありません。
また、相対パスと絶対パスのどちらでも指定できます。一般的な書式は、下記のとおりです。
「使用するプロトコル(file:)」+「絶対パスまたは相対パス」
- 絶対パス指定の例:file:c:/Documents and Settings/Administrator/readme.txt
- 相対パス指定の例:file:./Administrator/readme.txt
Windowsの場合、パスの切れ目は「\」ですが、そのまま指定するとエスケープシーケンスとして扱われますので、「\\」とするか「/」に置換する必要があります。
ネットワークファイルとローカルファイルをシームレスに扱う
以上から、URLを用いることで、プログラムからネットワークファイルとローカルファイルをシームレスに扱えます。
一例として、URLオブジェクトの配列にネットワークファイルと、相対パス指定によるローカルファイル、絶対パス指定によるローカルファイルのURLを格納して、次々と読み込むプログラムは以下のようになります。
なお、使用するプロトコルがhttpなどの場合は、ナンバー記号「#」の後にフラグメント(refまたは参照とも呼ぶ)を指定できますが、fileの場合には無視されます。フラグメントを指定することにより、フラグメントを解釈できるアプリケーションに、指定のリソースを取得して、該当する部分を処理の対象とするように示します。
ただし、上の図1のサンプルプログラムでは、フラグメントを指定しても、先頭行から読み込まれます。
Copyright © ITmedia, Inc. All Rights Reserved.