モジュール java.base
パッケージ java.net

クラスURL

java.lang.Object
java.net.URL
すべての実装されたインタフェース:
Serializable

public final class URL extends Object implements Serializable
URLクラスは、Uniform Resource Locator (ユニフォーム・リソース・ロケータ)、つまりWorld Wide Web上の「リソース」へのポインタを表します。 リソースは、ファイルやディレクトリのような単純なものであることも、データベースや検索エンジンに対するクエリーなど、より複雑なオブジェクトへの参照であることもあります。 URLの種類や形式の詳細については、次を参照してください。 Types of URL

一般に、URLはいくつかの部分に分解できます。 次のケースについて検討します。

     http://www.example.com/docs/resource1.html
 

上記のURLは、使用すべきプロトコルがhttp (HyperText Transfer Protocol)であることと、www.example.comという名前のホスト・マシン上に情報が存在していることを示しています。 そのホスト・マシン上の情報には、/docs/resource1.htmlという名前が付けられています。 ホスト・マシン上におけるこの名前の正確な意味は、プロトコルとホストの両方に依存します。 一般的には情報はファイル内に保存されていますが、動的に生成される場合もあります。 URLのこうした部分はパス・コンポーネントと呼ばれます。

URLにはオプションで「ポート」を指定できます。これは、TCP接続の確立先となる、リモート・ホスト・マシン上のポート番号です。 ポートを指定しなかった場合は、代わりにプロトコルのデフォルト・ポートが使用されます。 たとえば、httpのデフォルト・ポートは80です。 次のように別のポートを指定することもできます。

     http://www.example.com:1080/docs/resource1.html
 

URLの構文は、「RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax」で定義され、「RFC 2732: Format for Literal IPv6 Addresses in URLs」で修正されています。 リテラルIPv6アドレス形式ではスコープIDもサポートされます。 スコープIDの構文や使用方法については、ここを参照してください。

URLには「フラグメント」(「ref」または「参照(reference)」とも呼ぶ)を追加できます。 フラグメントは、シャープ記号文字「#」とそれに続くいくつかの文字によって示されます。 たとえば、

     http://www.example.com/index.html#chapter1
 

本来は、このフラグメントはURLの一部ではありません。 たとえば、上に示したフラグメントは、指定されたリソースを取得したあと、そのドキュメントの中でchapter1というタグが付いている部分をアプリケーションによる処理の対象とすることを示します。 タグの意味はリソースによって異なります。

アプリケーションは「相対URL」を指定することもできます。このURLには、別のURLを基準としてリソースを検索するのに必要な情報しか含まれていません。 相対URLはHTMLページ内でよく使用されます。 たとえば、次のURLがあるとします。

     http://www.example.com/index.html
 
このHTMLページの中に次の相対URLが含まれているとします。
     FAQ.html
 
これは次の短縮形とみなされます。
     http://www.example.com/FAQ.html
 

相対URLでは、URLのすべてのコンポーネントを指定する必要はありません。 プロトコルやホスト名、ポート番号を省略した場合には、すべてのコンポーネントが指定されているURLから値が継承されます。 ファイル・コンポーネントは指定しなければいけません。 オプション指定のフラグメントは継承されません。

URLのインスタンスの作成

java.net.URLコンストラクタは非推奨です。 開発者は、java.net.URIを使用してURLを解析または構築することをお薦めします。 接続を開くために java.net.URLのインスタンスが必要な場合、URIを使用してURL文字列を構築または解析できます。URI.parseServerAuthority()をコールして、権限コンポーネントをサーバー・ベースの権限として解析できることを確認し、URI.toURL()をコールしてURLインスタンスを作成できます。

URLコンストラクタはMalformedURLExceptionをスローするように指定されていますが、実行される実際の解析/検証は実装によって異なります。 一部の解析/検証は、基礎となる「ストリーム・ハンドラの実装」がコールされるまで遅延する場合があります。 URLのインスタンスを構築できるようにしても、URL構文仕様への準拠は保証されません。

URLクラス自体がRFC2396に定義されたエスケープ・メカニズムに従ってURLコンポーネントのエンコードやデコードを行うことはありません。 URLの呼出し前にエスケープの必要なすべてのフィールドをエンコードしておくことは、呼出し元の責任です。URLから返されたすべてのエスケープ済みフィールドをデコードすることも、同様です。 さらに、URLは、URLエスケープの知識を持たないため、同じURLのエンコードされた形式とデコードされた形式の等価性を判断できません。 たとえば、次の2つのURLがあるとします。

    http://foo.com/hello world/ and http://foo.com/hello%20world
これらは、互いに等しくないと見なされます。

URIクラスは特定の状況において、そのコンポーネント・フィールドに対してエスケープ処理を実行することに注意してください。 URLのエンコードとデコードを管理する際の推奨の方法は、URIを使用して、これら2つのクラス間の変換をtoURI()URI.toURL()を使って行うことです。

URLEncoderクラスとURLDecoderクラスを使用することもできますが、これらはHTML形式のエンコーディング専用です。また、このエンコーディングは、RFC2396で定義されているエンコーディング方式と同じものではありません。

APIのノート:
ファイル・パスおよびファイルURIを操作するアプリケーションは、2つの間で変換する適切なメソッドを使用することを検討する必要があります。 Path.of(URI)ファクトリ・メソッドおよびFile(URI)コンストラクタを使用して、ファイルURIからPathまたはFileオブジェクトを作成できます。 Path.toUri()およびFile.toURI()を使用して、URI.toURL()を使用してURLに変換できるファイル・パスからURIを作成できます。 アプリケーションは、FileまたはPathインスタンスの直接文字列表現からURLconstructまたはparseしないでください。

URIからURLを構築する前に、関連するプロトコルに応じて、アプリケーションはURI権限「サーバー・ベースとして解析できます」の検証を検討する必要があります。

URLまたはURIの一部のコンポーネント(userinfoなど)は、先行するURLまたはURIの構築に不正に使用される可能性があります。 Urlまたはuriを処理するアプリケーションは、「RFC3986,セクション7,セキュリティに関する考慮事項」で推奨される推奨事項を考慮してください。

すべてのURLコンストラクタは、MalformedURLExceptionをスローできます。 特に、基礎となるURLStreamHandler実装が拒否するか、拒否することがわかっている場合は、パラメータMalformedURLExceptionがスローされます。 通常、ストリーム・ハンドラの「parseURLメソッド」をコールするコンストラクタは、そのメソッドの基礎となるストリーム・ハンドラ実装がIllegalArgumentExceptionをスローする場合、MalformedURLExceptionをスローすることがあります。 ただし、ストリーム・ハンドラによってどのチェックが実行されるかは実装に依存するため、呼出し元は、完全なURL検証についてそのようなチェックに依存しないでください。

導入されたバージョン:
1.0
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    URL(String spec)
    非推奨。
    URI.toURL()を使用して、URLのインスタンスを作成します。
    URL(String protocol, String host, int port, String file)
    非推奨。
    URI.toURL()を使用して、URLのインスタンスを作成します。
    URL(String protocol, String host, int port, String file, URLStreamHandler handler)
    非推奨。
    of(URI, URLStreamHandler)を使用して、カスタム・プロトコル・ハンドラに関連付けられたURLのインスタンスを構築します。
    URL(String protocol, String host, String file)
    非推奨。
    URI.toURL()を使用して、URLのインスタンスを作成します。
    URL(URL context, String spec)
    非推奨。
    URI.toURL()を使用して、URLのインスタンスを作成します。
    URL(URL context, String spec, URLStreamHandler handler)
    非推奨。
    of(URI, URLStreamHandler)を使用して、カスタム・プロトコル・ハンドラに関連付けられたURLのインスタンスを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    このURLと別のオブジェクトとが等しいかどうかを比較します。
    このURLの機関部分を取得します。
    final Object
    このURLのコンテンツを取得します。
    final Object
    getContent(Class<?>[] classes)
    このURLのコンテンツを取得します。
    int
    このURLに関連するプロトコルのデフォルトのポート番号を取得します。
    このURLのファイル名を取得します。
    該当する場合、このURLのホスト名を取得します。
    このURLのパス部分を取得します。
    int
    このURLのポート番号を取得します。
    このURLのプロトコル名を取得します。
    このURLのクエリー部分を取得します。
    このURLのアンカー(「参照」とも呼ばれる)を取得します。
    このURLのユーザー情報部分を取得します。
    int
    ハッシュ表のインデックス付けに適したint値を作成します。
    static URL
    of(URI uri, URLStreamHandler handler)
    uri.toURL()を起動するかのようにURIからURLを作成しますが、許可されている場合は指定されたURLStreamHandlerに関連付けます。
    URLが参照するリモート・オブジェクトへの接続を表すURLConnectionインスタンスを返します。
    openConnection()と同じですが、指定されたプロキシを介して接続が行われます。プロキシをサポートしないプロトコル・ハンドラは、プロキシ・パラメータを無視し、通常の接続を作成します。
    このURLへの接続を開き、その接続から読み込むためのInputStreamを返します。
    boolean
    sameFile(URL other)
    フラグメント・コンポーネント以外の2つのURLを比較します。
    static void
    アプリケーションのURLStreamHandlerFactoryを設定します。
    このURLの文字列表現を構築します。
    このURLの文字列表現を構築します。
    このURLと等価なURIを返します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • コンストラクタの詳細

    • URL

      @Deprecated(since="20") public URL(String protocol, String host, int port, String file) throws MalformedURLException
      非推奨。
      URI.toURL()を使用して、URLのインスタンスを作成します。 詳細は、「コンストラクタの非推奨」のノートを参照してください。
      指定されたprotocolhostport番号、およびfileから、URLオブジェクトを作成します。

      hostは、ホスト名、リテラルIPアドレスのいずれかとして表現できます。 IPv6リテラル・アドレスを使用する場合は、RFC 2732で指定されているように、アドレスを角カッコ(「[」「]」)で囲む必要があります。ただし、「RFC 2373: IP Version 6 Addressing Architecture」で定義されているリテラルIPv6アドレス形式も、使用可能です。

      port番号-1の指定は、URLがプロトコルのデフォルトのポートを使用することを示します。

      指定されたプロトコルで最初にURLオブジェクトを生成するときには、そのプロトコルのためのストリーム・プロトコル・ハンドラ・オブジェクトが生成されます。このストリーム・プロトコル・ハンドラ・オブジェクトは、URLStreamHandlerクラスのインスタンスです。

      1. 以前にアプリケーションがURLStreamHandlerFactoryのインスタンスをストリーム・ハンドラ・ファクトリとして設定している場合は、そのインスタンスのcreateURLStreamHandlerメソッドがプロトコル文字列を引数として呼び出されて、ストリーム・プロトコル・ハンドラを作成する。
      2. URLStreamHandlerFactoryがまだ設定されていない場合、またはcreateURLStreamHandlerメソッドがnullを返した場合は、ServiceLoaderメカニズムを使用して、システム・クラス・ローダーを使用してURLStreamHandlerProvider実装を特定します。 プロバイダが配置される順序は実装固有であり、実装は配置されたプロバイダを自由にキャッシュできます。 createURLStreamHandlerからスローされたServiceConfigurationErrorErrorまたはRuntimeExceptionが発生した場合は、呼び出しスレッドに伝播されます。 各プロバイダの createURLStreamHandlerメソッド(インスタンス化されている場合)は、プロバイダが非nullを返すか、すべてのプロバイダが使い果たされるまで、プロトコル文字列とともに呼び出されます。
      3. 前のステップでプロトコル・ハンドラが見つからない場合、コンストラクタはシステム・プロパティの値を読み取ります:
        java.protocol.handler.pkgs
        このシステム・プロパティの値がnullでなければ、値は、垂直スラッシュ文字「|」で区切られた、パッケージのリストとして解釈される。 コンストラクタは次の名前を持つクラスをロードしようとする。
        <package>.<protocol>.Handler
        ここで、<package>はパッケージの名前に置き換えられ、<protocol>はプロトコルの名前に置き換えられます。 このクラスが存在しない場合、あるいはクラスは存在してもそれがURLStreamHandlerのサブクラスではない場合には、リストにある次のパッケージを試すことになる。
      4. 前のステップでプロトコル・ハンドラが見つからない場合、コンストラクタは組み込みのプロトコル・ハンドラをロードしようとします。 このクラスが存在しない場合、またはクラスは存在するがURLStreamHandlerのサブクラスではない場合は、MalformedURLExceptionがスローされる。

      次のプロトコルのプロトコル・ハンドラは、検索パスに存在することが保証されます:

      • http
      • https
      • file
      • jar
      その他のプロトコルのプロトコル・ハンドラも使用可能になっている可能性があります。 クラスパス上のプラットフォーム・クラスまたはクラスをロードするために使用されるプロトコル・ハンドラなどの一部のプロトコル・ハンドラは、オーバーライドできません。 そのような制限の詳細、およびそれらの制限が(実行時の初期化中など)に適用される場合、実装固有であり、したがって指定されていない

      このコンストラクタによる入力の検証は実行されません。

      パラメータ:
      protocol - 使用するプロトコル名。
      host - ホスト名。
      port - ホスト上でのポート番号。
      file - ホスト上のファイル
      例外:
      MalformedURLException - 不明なプロトコルまたはポートが -1以外の負の数値である場合、または基礎となるストリーム・ハンドラの実装が拒否または拒否されることがわかっている場合は、URL
      関連項目:
    • URL

      @Deprecated(since="20") public URL(String protocol, String host, String file) throws MalformedURLException
      非推奨。
      URI.toURL()を使用して、URLのインスタンスを作成します。 詳細は、「コンストラクタの非推奨」のノートを参照してください。
      指定されたprotocol名、host名、およびfile名からURLを作成します。 指定されたプロトコルのデフォルト・ポートが使用されます。

      このコンストラクタは、引数が4つのコンストラクタに相当し、指定されたプロトコルのデフォルト・ポートを使用する点のみが異なります。 このコンストラクタによる入力の検証は実行されません。

      パラメータ:
      protocol - 使用するプロトコル名。
      host - ホスト名。
      file - ホスト上のファイル。
      例外:
      MalformedURLException - 不明なプロトコルが指定されている場合、または基礎となるストリーム・ハンドラ実装が拒否するか、拒否することがわかっている場合は、URL
      関連項目:
    • URL

      @Deprecated(since="20") public URL(String protocol, String host, int port, String file, URLStreamHandler handler) throws MalformedURLException
      非推奨。
      of(URI, URLStreamHandler)を使用して、カスタム・プロトコル・ハンドラに関連付けられたURLのインスタンスを構築します。 詳細は、「コンストラクタの非推奨」のノートを参照してください。
      指定されたprotocolhostport番号、file、およびhandlerから、URLオブジェクトを作成します。 port番号-1の指定は、URLがプロトコルのデフォルトのポートを使用することを示します。 nullhandlerを指定することは、URLでプロトコルのデフォルト・ストリーム・ハンドラを使用する必要があることを示します: URL(java.lang.String, java.lang.String, int, java.lang.String)

      ハンドラがnullではなく、セキュリティ・マネージャが存在する場合、NetPermission("specifyStreamHandler")アクセス権を指定してセキュリティ・マネージャのcheckPermissionメソッドが呼び出されます。 その結果、SecurityExceptionが発生することがあります。 このコンストラクタによる入力の検証は実行されません。

      パラメータ:
      protocol - 使用するプロトコル名。
      host - ホスト名。
      port - ホスト上でのポート番号。
      file - ホスト上のファイル
      handler - URLのストリーム・ハンドラ。
      例外:
      MalformedURLException - 不明なプロトコルまたはポートが -1以外の負の数値である場合、または基礎となるストリーム・ハンドラの実装が拒否または拒否されることがわかっている場合は、URL
      SecurityException−セキュリティ・マネージャが存在し、セキュリティ・マネージャのcheckPermissionメソッドがストリーム・ハンドラの明示的な指定を許可しない場合。
      関連項目:
    • URL

      @Deprecated(since="20") public URL(String spec) throws MalformedURLException
      非推奨。
      URI.toURL()を使用して、URLのインスタンスを作成します。 詳細は、「コンストラクタの非推奨」のノートを参照してください。
      String表現からURLオブジェクトを生成します。

      このコンストラクタは、1番目の引数にnullを指定して、引数が2つのコンストラクタを呼び出すことと同じです。

      パラメータ:
      spec - URLとして構文解析されるString
      例外:
      MalformedURLException - プロトコルが指定されていないか、不明なプロトコルが見つかったか、specnullの場合、解析されたURLが関連付けられているプロトコルの特定の構文に準拠していないか、基礎となるストリーム・ハンドラの「parseURLメソッド」IllegalArgumentExceptionをスロー
      関連項目:
    • URL

      @Deprecated(since="20") public URL(URL context, String spec) throws MalformedURLException
      非推奨。
      URI.toURL()を使用して、URLのインスタンスを作成します。 詳細は、「コンストラクタの非推奨」のノートを参照してください。
      指定されたコンテキスト内の指定された仕様で構文解析することによって、URLを生成します。 新しいURLは、RFC2396 "Uniform Resource Identifiers : Generic Syntax"で説明されているように、指定されたコンテキストURLおよびspec引数から作成されます :
                <scheme>://<authority><path>?<query>#<fragment>
       
      参照はスキーム、機関、パス、クエリー、およびフラグメントの各部分に構文解析されます。 パス・コンポーネントが空でスキーム、機関、およびクエリーの各コンポーネントが未定義の場合、新しいURLが現在のドキュメントへの参照となります。 それ以外の場合は、仕様のフラグメント部分とクエリー部分が新しいURLに使われます。

      指定された仕様でスキーム・コンポーネントが定義され、そのスキーム・コンポーネントがコンテキストのスキームと一致しない場合、仕様だけに基づく絶対URLとして新しいURLが生成されます。 そうでない場合は、スキーム・コンポーネントはコンテキストURLを継承します。

      機関コンポーネントが仕様にある場合には、仕様は絶対的なものとして扱われ、仕様の機関とパスはコンテキストの機関とパスを置換します。 仕様に機関コンポーネントがない場合、新しいURLの機関はコンテキストを継承します。

      仕様のパス・コンポーネントがスラッシュ文字「/」で始まる場合、パスは絶対的なものとして扱われ、仕様のパスがコンテキストのパスを置換します。

      それ以外の場合、RFC2396で説明されているように、パスは相対パスとして扱われ、コンテキスト・パスに追加されます。 また、この場合、「..」および「.」によって行われたディレクトリ変更を削除することで、パスは正規化されます。

      URL構文解析の詳細な説明については、RFC2396を参照してください。

      実装要件:
      URLの解析には、選択したハンドラでのparseURLメソッドの呼出しが含まれます。
      パラメータ:
      context - 仕様を構文解析するコンテキスト。
      spec - URLとして構文解析されるString
      例外:
      MalformedURLException - プロトコルが指定されていないか、不明なプロトコルが見つかったか、specnullの場合、解析されたURLが関連付けられているプロトコルの特定の構文に準拠していないか、基礎となるストリーム・ハンドラの「parseURLメソッド」IllegalArgumentExceptionをスロー
      関連項目:
    • URL

      @Deprecated(since="20") public URL(URL context, String spec, URLStreamHandler handler) throws MalformedURLException
      非推奨。
      of(URI, URLStreamHandler)を使用して、カスタム・プロトコル・ハンドラに関連付けられたURLのインスタンスを構築します。 詳細は、「コンストラクタの非推奨」のノートを参照してください。
      指定されたコンテキスト内の指定されたハンドラで、指定された仕様を構文解析してURLを生成します。 ハンドラがnullの場合、2つの引数を取るコンストラクタと同様の解析が行われます。
      実装要件:
      URLの解析には、選択したハンドラでのparseURLメソッドの呼出しが含まれます。
      パラメータ:
      context - 仕様を構文解析するコンテキスト。
      spec - URLとして構文解析されるString
      handler - URLのストリーム・ハンドラ。
      例外:
      MalformedURLException - プロトコルが指定されていないか、不明なプロトコルが見つかったか、specnullの場合、解析されたURLが関連付けられているプロトコルの特定の構文に準拠していないか、基礎となるストリーム・ハンドラの「parseURLメソッド」IllegalArgumentExceptionをスロー
      SecurityException−セキュリティ・マネージャが存在し、セキュリティ・マネージャのcheckPermissionメソッドがストリーム・ハンドラの指定を許可しない場合。
      関連項目:
  • メソッドの詳細

    • of

      public static URL of(URI uri, URLStreamHandler handler) throws MalformedURLException
      uri.toURL()を起動するかのようにURIからURLを作成しますが、許可されている場合は指定されたURLStreamHandlerに関連付けます。
      APIのノート:
      アプリケーションでは、URLを構築して接続を開く前に、追加の整合性チェックの実行を検討する必要があります。 クラス・レベルのAPIドキュメントの「APIノート」を参照してください。
      実装要件:
      このメソッドの実装には、選択したハンドラでのparseURLメソッドの呼出しが含まれます。
      パラメータ:
      uri - 返されたURLの構築元となるURI
      handler - 返されたURLのカスタム・プロトコル・ストリーム・ハンドラ。 nullを指定できます。その場合は、プロトコルのデフォルトのストリーム・ハンドラ(ある場合)が使用されます。
      戻り値:
      指定されたURIから作成され、指定されたURLStreamHandlerに関連付けられている新しいURLインスタンス(ある場合)
      例外:
      NullPointerException - urinullである場合
      IllegalArgumentException - プロトコルが指定されていない場合 (「URIスキーム」nullです)、またはURLStreamHandlernullでなく、指定されたプロトコルに設定できない場合
      MalformedURLException - 不明なプロトコルが見つかった場合、または指定されたURIが関連するプロトコルの特定の構文に準拠していない場合、または基礎となるストリーム・ハンドラの「parseURLメソッド」IllegalArgumentExceptionをスローした場合
      SecurityException−セキュリティ・マネージャが存在し、セキュリティ・マネージャのcheckPermissionメソッドがストリーム・ハンドラの指定を許可しない場合
      導入されたバージョン:
      20
      関連項目:
    • getQuery

      public String getQuery()
      このURLのクエリー部分を取得します。
      戻り値:
      このURLのクエリー部分。存在しない場合はnull
      導入されたバージョン:
      1.3
    • getPath

      public String getPath()
      このURLのパス部分を取得します。
      戻り値:
      このURLのパス部分。存在しない場合は空の文字列
      導入されたバージョン:
      1.3
    • getUserInfo

      public String getUserInfo()
      このURLのユーザー情報部分を取得します。
      戻り値:
      このURLのユーザー情報部分。存在しない場合はnull
      導入されたバージョン:
      1.3
    • getAuthority

      public String getAuthority()
      このURLの機関部分を取得します。
      戻り値:
      このURLの機関部分
      導入されたバージョン:
      1.3
    • getPort

      public int getPort()
      このURLのポート番号を取得します。
      戻り値:
      ポート番号。ポートが設定されていない場合は -1
    • getDefaultPort

      public int getDefaultPort()
      このURLに関連するプロトコルのデフォルトのポート番号を取得します。 URLスキームまたはURLのURLStreamHandlerがデフォルトのポート番号を定義しない場合は、-1が返されます。
      戻り値:
      ポート番号
      導入されたバージョン:
      1.4
    • getProtocol

      public String getProtocol()
      このURLのプロトコル名を取得します。
      戻り値:
      このURLのプロトコル。
    • getHost

      public String getHost()
      該当する場合、このURLのホスト名を取得します。 ホスト名の形式はRFC 2732に準拠します。つまり、リテラルIPv6アドレスの場合、このメソッドは角カッコ(「[」および「]」)で囲まれたIPv6アドレスを返します。
      戻り値:
      このURLのホスト名。
    • getFile

      public String getFile()
      このURLのファイル名を取得します。 返されるファイル部分は、getQuery()の値が存在する場合には、その値とgetPath()の値を連結したものと同じになります。 クエリー部分が存在しない場合、このメソッドとgetPath()は同じ結果を返します。
      戻り値:
      このURLのファイル名。存在しない場合は空の文字列
    • getRef

      public String getRef()
      このURLのアンカー(「参照」とも呼ばれる)を取得します。
      戻り値:
      このURLのアンカー(「参照」とも呼ばれる)。存在しない場合はnull
    • equals

      public boolean equals(Object obj)
      このURLと別のオブジェクトとが等しいかどうかを比較します。

      指定されたオブジェクトがURLでない場合、このメソッドは直ちにfalseを返します。

      2つのURLオブジェクトが等しいのは、同じプロトコルを持ち、同じホストを参照し、ホスト上のポート番号が同じで、ファイルとファイルのフラグメントが同じ場合です。

      2つのホストが等価と見なされるのは、両方のホスト名が同じIPアドレスに解決されるか、どちらかのホスト名を解決できない場合は、大文字小文字に関係なくホスト名が等しいか、両方のホスト名がnullに等しい場合です。

      ホスト比較には名前解決が必要なので、この操作はブロック操作です。

      ノート: equalsの定義された動作は、HTTPの仮想ホストと一致しないことが知られています。

      オーバーライド:
      equals、クラスObject
      パラメータ:
      obj−比較対象のURL。
      戻り値:
      オブジェクトが同じである場合はtrue、そうでない場合はfalse
      関連項目:
    • hashCode

      public int hashCode()
      ハッシュ表のインデックス付けに適したint値を作成します。

      ハッシュ・コードはURL比較に関連するすべてのURLコンポーネントに基づいています。 したがって、この操作はブロック操作です。

      オーバーライド:
      hashCode、クラスObject
      戻り値:
      URLのハッシュ・コード。
      関連項目:
    • sameFile

      public boolean sameFile(URL other)
      フラグメント・コンポーネント以外の2つのURLを比較します。

      フラグメント・コンポーネントを考慮しないで、このURLother引数が等しい場合は、trueを返します。

      パラメータ:
      other - 比較対象のURL
      戻り値:
      参照するリモート・オブジェクトが同じである場合はtrue、そうでない場合はfalse
    • toString

      public String toString()
      このURLの文字列表現を構築します。 このオブジェクトのストリーム・プロトコル・ハンドラのtoExternalFormメソッドを呼び出すことによって文字列が作成されます。
      オーバーライド:
      toString、クラスObject
      戻り値:
      このオブジェクトの文字列表現。
      関連項目:
    • toExternalForm

      public String toExternalForm()
      このURLの文字列表現を構築します。 このオブジェクトのストリーム・プロトコル・ハンドラのtoExternalFormメソッドを呼び出すことによって文字列が作成されます。
      戻り値:
      このオブジェクトの文字列表現。
      関連項目:
    • toURI

      public URI toURI() throws URISyntaxException
      このURLと等価なURIを返します。 このメソッドは、new URI (this.toString())と同じように機能します。

      RFC 2396に準拠したURLインスタンスは必ずURIに変換できることに注意してください。 ただし、厳密に準拠していないURLは、URIに変換できない可能性があります。

      戻り値:
      このURLと等価なURIインスタンス。
      例外:
      URISyntaxException - このURLが厳密にRFC2396に従った形式ではなく、URIに変換できない場合。
      導入されたバージョン:
      1.5
    • openConnection

      public URLConnection openConnection() throws IOException
      URLが参照するリモート・オブジェクトへの接続を表すURLConnectionインスタンスを返します。

      このURLのプロトコル・ハンドラのURLStreamHandler.openConnection(URL)メソッドを呼び出すたびに、URLConnectionの新しいインスタンスが作成されます。

      URLConnectionインスタンスは作成時に実際のネットワーク接続を確立しないことに注意してください。 これが発生するのは、URLConnection.connect()の呼出し時のみです。

      HTTPやJARといったURLのプロトコルごとに一般または特殊なURLConnectionサブクラスが存在しており、そのサブクラスは次のパッケージまたはそのサブパッケージのいずれかに属します。java.lang、java.io、java.util, java.net。返される接続の型は、そのサブクラスになります。 たとえば、HTTPの場合はHttpURLConnectionが返され、JARの場合はJarURLConnectionが返されます。

      戻り値:
      URLにリンクしているURLConnection
      例外:
      IOException - 入出力例外が発生した場合。
      関連項目:
    • openConnection

      public URLConnection openConnection(Proxy proxy) throws IOException
      openConnection()と同じですが、指定されたプロキシを介して接続が行われます。プロキシをサポートしないプロトコル・ハンドラは、プロキシ・パラメータを無視し、通常の接続を作成します。 このメソッドを呼び出すと、システムのデフォルトのProxySelector設定が優先されます。
      パラメータ:
      proxy−この接続の確立に使用されるプロキシ。 直接接続を行いたい場合はProxy.NO_PROXYを指定すべきである。
      戻り値:
      URLへのURLConnection
      例外:
      IOException - 入出力例外が発生した場合。
      SecurityException−セキュリティ・マネージャが存在し、プロキシに接続する権限を呼出し元が持っていない場合。
      IllegalArgumentException−プロキシがnullであるかプロキシの型が正しくない場合にスローされる
      UnsupportedOperationException−プロトコル・ハンドラを実装するサブクラスがこのメソッドをサポートしない場合。
      導入されたバージョン:
      1.5
      関連項目:
    • openStream

      public final InputStream openStream() throws IOException
      このURLへの接続を開き、その接続から読み込むためのInputStreamを返します。 このメソッドは次のメソッドの短縮形です。
           openConnection().getInputStream()
       
      戻り値:
      URL接続から入力を読み込むための入力ストリーム。
      例外:
      IOException - 入出力例外が発生した場合。
      関連項目:
    • getContent

      public final Object getContent() throws IOException
      このURLのコンテンツを取得します。 このメソッドは次のメソッドの短縮形です。
           openConnection().getContent()
       
      戻り値:
      このURLのコンテンツ。
      例外:
      IOException - 入出力例外が発生した場合。
      関連項目:
    • getContent

      public final Object getContent(Class<?>[] classes) throws IOException
      このURLのコンテンツを取得します。 このメソッドは次のメソッドの短縮形です。
           openConnection().getContent(classes)
       
      パラメータ:
      classes−Java型の配列
      戻り値:
      クラスの配列で指定された型が最初に一致した、このURLのコンテンツ・オブジェクト。要求された型がサポートされていない場合はnull。
      例外:
      IOException - 入出力例外が発生した場合。
      導入されたバージョン:
      1.3
      関連項目:
    • setURLStreamHandlerFactory

      public static void setURLStreamHandlerFactory(URLStreamHandlerFactory fac)
      アプリケーションのURLStreamHandlerFactoryを設定します。 このメソッドは、使用するJava仮想マシンで1回しか呼び出せません。

      URLStreamHandlerFactoryインスタンスは、プロトコル名からストリーム・プロトコル・ハンドラを構築するのに使用されます。

      セキュリティ・マネージャが存在する場合、この操作が許可されるように、このメソッドは最初にセキュリティ・マネージャのcheckSetFactoryメソッドを呼び出します。 この結果、SecurityExceptionがスローされることがあります。

      パラメータ:
      fac - 目的のファクトリ。
      例外:
      Error−アプリケーションでファクトリがすでに設定されている場合。
      SecurityException - セキュリティ・マネージャが存在し、そのcheckSetFactoryメソッドでこの操作が許可されていない場合。
      関連項目: