getDefault
メソッドを定義します。
このクラスで定義されているどのメソッドの最初の呼出しでも、デフォルト・プロバイダ
がロードされます。 デフォルト・プロバイダ(URIスキーム「file」で識別される)は、Java仮想マシンからアクセス可能なファイル・システムへのアクセスを提供するFileSystem
を作成します。 デフォルト・プロバイダのロードまたは初期化の処理が失敗すると、未指定のエラーがスローされます。
このクラスで定義されている newFileSystem
メソッドの呼出しによるinstalledProviders
メソッドの最初の呼出しでは、インストールされているすべてのファイル・システム・プロバイダの検索とロードが行われます。 インストールされているプロバイダのロードには、ServiceLoader
クラスで定義されているサービス・プロバイダのロード機能が使用されます。 インストールされているプロバイダのロードにはシステム・クラス・ローダーが使用されます。 システム・クラス・ローダーが見つからない場合、プラットフォーム・クラス・ローダーが使用されます。 プロバイダは通常、アプリケーション・クラス・パス上のJARファイルに配置されてインストールされ、JARファイルにはリソース・ディレクトリMETA-INF/services
にjava.nio.file.spi.FileSystemProvider
という名前のプロバイダ構成ファイルが含まれ、FileSystemProvider
の具象サブクラスの完全修飾名が1つ以上リストされますそれらは引数なしのコンストラクタを持ちます。 インストールされているプロバイダの検索順序は実装によって異なります。 プロバイダがインスタンス化され、そのgetScheme
によって、以前インスタンス化されたプロバイダと同じURIスキームのプロバイダが返される場合は、最後にインスタンス化された重複するプロバイダが破棄されます。 URIスキームは大文字小文字に関係なく比較されます。 構築中、プロバイダはデフォルト・プロバイダに関連付けられたファイルに安全にアクセスできますが、インストールされたほかのプロバイダの循環ロードを避けるために注意が必要です。 インストールされたプロバイダの循環ロードが検出された場合は、未指定のエラーがスローされます。
このクラスでは、プロバイダの検索時にClassLoader
を指定できるようにするファクトリ・メソッドも定義します。 インストールされているプロバイダと同様に、プロバイダ・クラスも、プロバイダ構成ファイルをリソース・ディレクトリMETA-INF/services
内に配置することで識別されます。
あるスレッドがインストールされているファイル・システム・プロバイダのロードを開始しているときに、別のスレッドが同様にそれらのプロバイダのロードを試みるメソッドを呼び出した場合、最初のロードが完了するまでそのメソッドはブロックされます。
- 導入されたバージョン:
- 1.7
-
メソッドのサマリー
修飾子と型メソッド説明static FileSystem
デフォルトのFileSystem
を返します。static FileSystem
getFileSystem
(URI uri) 既存のFileSystem
への参照を返します。static FileSystem
newFileSystem
(URI uri, Map<String, ?> env) URI
によって識別される新しいファイル・システムを構築します。static FileSystem
newFileSystem
(URI uri, Map<String, ?> env, ClassLoader loader) URI
によって識別される新しいファイル・システムを構築します。static FileSystem
newFileSystem
(Path path) ファイルの内容にファイル・システムとしてアクセスする新しいFileSystem
を構築します。static FileSystem
newFileSystem
(Path path, ClassLoader loader) ファイルの内容にファイル・システムとしてアクセスする新しいFileSystem
を構築します。static FileSystem
newFileSystem
(Path path, Map<String, ?> env) ファイルの内容にファイル・システムとしてアクセスする新しいFileSystem
を構築します。static FileSystem
newFileSystem
(Path path, Map<String, ?> env, ClassLoader loader) ファイルの内容にファイル・システムとしてアクセスする新しいFileSystem
を構築します。
-
メソッドの詳細
-
getDefault
public static FileSystem getDefault()デフォルトのFileSystem
を返します。 デフォルトのファイル・システムは、Java仮想マシンからアクセス可能なファイル・システムへのアクセスを提供するオブジェクトを作成します。 そのファイル・システムの作業ディレクトリは、システム・プロパティuser.dir
によって指定された現在のユーザー・ディレクトリです。 これにより、java.io.File
クラスとの相互運用性が確保されます。このクラスで定義されているどのメソッドの最初の呼出しでも、デフォルト・
プロバイダ
・オブジェクトが検索されます。 システム・プロパティjava.nio.file.spi.DefaultFileSystemProvider
が定義されていない場合は、デフォルトのファイル・システムを作成するために呼び出されるシステムのデフォルト・プロバイダがデフォルト・プロバイダになります。システム・プロパティ
java.nio.file.spi.DefaultFileSystemProvider
が定義されている場合は、それがURIスキーム"file"
で識別される具象プロバイダ・クラスの1つまたは複数の完全修飾名のリストとみなされます。 そのプロパティが複数の名前のリストである場合、それらの名前はカンマで区切られています。 各クラスは、システム・クラス・ローダーを使ってロードされ、1つの引数をとるコンストラクタ(その仮パラメータ型はFileSystemProvider
)を呼び出してインスタンス化されます。 プロバイダは、そのプロパティに指定されている順序でロードおよびインスタンス化されます。 このプロセスが失敗するか、プロバイダのスキームが"file"
に等しくない場合は、未指定のエラーがスローされます。 URIスキームは通常、大文字小文字に関係なく比較されますが、このスキームは"file"
である必要があります。 最初のプロバイダ・クラスをインスタンス化するには、システムのデフォルト・プロバイダへの参照を使ってそれを呼び出します。 2番目のプロバイダ・クラスをインスタンス化するには、最初のプロバイダ・インスタンスへの参照を使ってそれを呼び出します。 3番目のプロバイダ・クラスをインスタンス化するには、2番目のプロバイダ・インスタンスへの参照を使ってそれを呼び出し、それ以降も同様です。 インスタンス化される最後のプロバイダがデフォルト・プロバイダになります。つまり、そのgetFileSystem
メソッドがURI"file:///"
を使って呼び出されて、デフォルトのファイル・システムへの参照が取得されます。このメソッドの以降の呼出しでも、最初の呼出しで返されたファイル・システムが返されます。
- 戻り値:
- デフォルトのファイル・システム
-
getFileSystem
public static FileSystem getFileSystem(URI uri) 既存のFileSystem
への参照を返します。このメソッドは、
インストールされている
プロバイダを反復して、指定されたURIのURIスキーム
で識別されるプロバイダを検索します。 URIスキームは大文字小文字に関係なく比較されます。 URIの正確な形式はプロバイダに大きく依存します。 見つかった場合は、そのプロバイダのgetFileSystem
メソッドが呼び出されてFileSystem
への参照が取得されます。このプロバイダによって作成されたファイル・システムが
閉じると
、このメソッドが、閉じられたファイル・システムへの参照を返すかFileSystemNotFoundException
をスローするかは、プロバイダによって異なります。 以前に作成したファイル・システムと同じURIで新しいファイル・システムを作成することをプロバイダが許可する場合は、ファイル・システムが閉じられたあとで(かつnewFileSystem
メソッドによって新しいインスタンスが作成される前に)このメソッドを呼び出すと、例外がスローされます。セキュリティ・マネージャがインストールされている場合は、プロバイダ実装は既存のファイル・システムへの参照を返す前にアクセス権をチェックすることを必要とする場合があります。
デフォルト
・ファイル・システムの場合は、アクセス権のチェックは不要です。- パラメータ:
uri
- ファイル・システムを検索するURI- 戻り値:
- ファイル・システムへの参照
- 例外:
IllegalArgumentException
-uri
パラメータの事前条件が満たされない場合FileSystemNotFoundException
- そのファイル・システム(URIによって識別される)が存在しない場合ProviderNotFoundException
- URIスキームをサポートするプロバイダがインストールされていない場合SecurityException
- セキュリティ・マネージャがインストールされ、それが未指定のアクセス権を拒否する場合
-
newFileSystem
public static FileSystem newFileSystem(URI uri, Map<String, ?> env) throws IOExceptionURI
によって識別される新しいファイル・システムを構築します。このメソッドは、
インストールされている
プロバイダを反復して、指定されたURIのURIスキーム
で識別されるプロバイダを検索します。 URIスキームは大文字小文字に関係なく比較されます。 URIの正確な形式はプロバイダに大きく依存します。 見つかった場合は、そのプロバイダのnewFileSystem(URI,Map)
メソッドが呼び出されて新しいファイル・システムが構築されます。ファイル・システムが
閉じられると
、以前に作成したファイル・システムと同じURIで新しいファイル・システムを作成することをプロバイダが許可するかどうかはプロバイダによって異なります。使用例: スキーム
"memory"
で識別されるプロバイダがインストールされているとします。FileSystem fs = FileSystems.newFileSystem(URI.create("memory:///?name=logfs"), Map.of("capacity", "16G", "blockSize", "4k"));
- パラメータ:
uri
- ファイル・システムを識別するURIenv
- ファイル・システムを構成するためのプロバイダ固有のプロパティのマップ。空でも可- 戻り値:
- 新しいファイル・システム
- 例外:
IllegalArgumentException
-uri
パラメータの事前条件が満たされない場合、またはenv
パラメータにプロバイダが必要とするプロパティが含まれない場合、またはプロパティ値が無効な場合FileSystemAlreadyExistsException
- そのファイル・システムがすでに作成されている場合ProviderNotFoundException
- URIスキームをサポートするプロバイダがインストールされていない場合IOException
- そのファイル・システムの作成時に入出力エラーが発生した場合SecurityException
- セキュリティ・マネージャがインストールされ、それがファイル・システム・プロバイダ実装によって必要とされる未指定のアクセス権を拒否する場合
-
newFileSystem
public static FileSystem newFileSystem(URI uri, Map<String, ?> env, ClassLoader loader) throws IOExceptionURI
によって識別される新しいファイル・システムを構築します。このメソッドは最初に、
newFileSystem(URI,Map)
メソッドとまったく同じ方法でインストールされているプロバイダの検索を試みます。 インストールされているプロバイダの中にそのURIスキームをサポートするものが1つも存在しない場合は、指定されたクラス・ローダーを使用してプロバイダの検索を試みます。 そのURIスキームをサポートするプロバイダが見つかった場合は、そのnewFileSystem(URI,Map)
が呼び出されて、新しいファイル・システムが構築されます。- パラメータ:
uri
- ファイル・システムを識別するURIenv
- ファイル・システムを構成するためのプロバイダ固有のプロパティのマップ。空でも可loader
- プロバイダを検索するためのクラス・ローダー。インストールされたプロバイダを検索するのみの場合はnull
- 戻り値:
- 新しいファイル・システム
- 例外:
IllegalArgumentException
-uri
パラメータの事前条件が満たされない場合、またはenv
パラメータにプロバイダが必要とするプロパティが含まれない場合、またはプロパティ値が無効な場合FileSystemAlreadyExistsException
- URIスキームによって、インストールされているプロバイダが識別されたが、そのファイル・システムがすでに作成されている場合ProviderNotFoundException
- URIスキームをサポートするプロバイダが見つからない場合ServiceConfigurationError
- サービス・プロバイダのロード中にエラーが発生した場合IOException
- そのファイル・システムの作成時に入出力エラーが発生した場合SecurityException
- セキュリティ・マネージャがインストールされ、それがファイル・システム・プロバイダ実装によって必要とされる未指定のアクセス権を拒否する場合
-
newFileSystem
public static FileSystem newFileSystem(Path path, ClassLoader loader) throws IOException ファイルの内容にファイル・システムとしてアクセスする新しいFileSystem
を構築します。このメソッドは、1つまたは複数のファイルの内容がファイル・システムとして扱われる擬似ファイル・システムを作成する特別なプロバイダを使用します。
このメソッドは、空のマップを持つ
newFileSystem(Path, Map, ClassLoader)
メソッドとまったく同じ方法で、インストールされているプロバイダの検索を最初に試みます。 インストールされているプロバイダの中にそのFileSystem
を返すものが1つも存在しない場合は、指定されたクラス・ローダーを使用してプロバイダの検索を試みます。 プロバイダがファイル・システムを返す場合は、検索処理が終了して、そのファイル・システムが返されます。- パラメータ:
path
- ファイルへのパスloader
- プロバイダを検索するためのクラス・ローダー。インストールされたプロバイダを検索するのみの場合はnull
- 戻り値:
- 新しいファイル・システム
- 例外:
ProviderNotFoundException
- このファイル・タイプをサポートするプロバイダが見つからない場合ServiceConfigurationError
- サービス・プロバイダのロード中にエラーが発生した場合IOException
- 入出力エラーが発生した場合SecurityException
- セキュリティ・マネージャがインストールされ、それが未指定のアクセス権を拒否する場合
-
newFileSystem
public static FileSystem newFileSystem(Path path, Map<String, ?> env) throws IOExceptionファイルの内容にファイル・システムとしてアクセスする新しいFileSystem
を構築します。このメソッドは、1つまたは複数のファイルの内容がファイル・システムとして扱われる擬似ファイル・システムを作成する特別なプロバイダを使用します。
このメソッドは、最初に、インストールされているプロバイダを
newFileSystem(Path, Map, ClassLoader)
メソッドとまったく同じ方法で検出しようとします。 検出されると、新しいファイル・システムを構築するためにプロバイダnewFileSystem(Path, Map)
メソッドが呼び出されます。- パラメータ:
path
- ファイルへのパスenv
- ファイル・システムを構成するためのプロバイダ固有のプロパティのマップ。空でも可- 戻り値:
- 新しいファイル・システム
- 例外:
ProviderNotFoundException
- このファイル・タイプをサポートするプロバイダが見つからない場合ServiceConfigurationError
- サービス・プロバイダのロード中にエラーが発生した場合IOException
- 入出力エラーが発生した場合SecurityException
- セキュリティ・マネージャがインストールされ、それが未指定のアクセス権を拒否する場合- 導入されたバージョン:
- 13
-
newFileSystem
public static FileSystem newFileSystem(Path path) throws IOException ファイルの内容にファイル・システムとしてアクセスする新しいFileSystem
を構築します。このメソッドは、1つまたは複数のファイルの内容がファイル・システムとして扱われる擬似ファイル・システムを作成する特別なプロバイダを使用します。
このメソッドは、最初に、インストールされているプロバイダを
newFileSystem(Path, Map, ClassLoader)
メソッドとまったく同じ方法で検出しようとします。 見つかった場合、新しいファイル・システムを構築するための空のマップを使用してプロバイダnewFileSystem(Path, Map)
メソッドが呼び出されます。- パラメータ:
path
- ファイルへのパス- 戻り値:
- 新しいファイル・システム
- 例外:
ProviderNotFoundException
- このファイル・タイプをサポートするプロバイダが見つからない場合ServiceConfigurationError
- サービス・プロバイダのロード中にエラーが発生した場合IOException
- 入出力エラーが発生した場合SecurityException
- セキュリティ・マネージャがインストールされ、それが未指定のアクセス権を拒否する場合- 導入されたバージョン:
- 13
-
newFileSystem
public static FileSystem newFileSystem(Path path, Map<String, ?> env, ClassLoader loader) throws IOExceptionファイルの内容にファイル・システムとしてアクセスする新しいFileSystem
を構築します。このメソッドは、1つまたは複数のファイルの内容がファイル・システムとして扱われる擬似ファイル・システムを作成する特別なプロバイダを使用します。
このメソッドは、
インストールされている
プロバイダを反復処理します。 このメソッドは、各プロバイダnewFileSystem(Path,Map)
メソッドを呼び出します。 プロバイダがファイル・システムを返す場合は、反復処理が終了して、そのファイル・システムが返されます。 インストールされているプロバイダの中にそのFileSystem
を返すものが1つも存在しない場合は、指定されたクラス・ローダーを使用してプロバイダの検索を試みます。 プロバイダからファイル・システムが返されると、ルックアップは終了し、ファイル・システムが返されます。- パラメータ:
path
- ファイルへのパスenv
- ファイル・システムを構成するためのプロバイダ固有のプロパティのマップ。空でも可loader
- プロバイダを検索するためのクラス・ローダー。インストールされたプロバイダを検索するのみの場合はnull
- 戻り値:
- 新しいファイル・システム
- 例外:
ProviderNotFoundException
- このファイル・タイプをサポートするプロバイダが見つからない場合ServiceConfigurationError
- サービス・プロバイダのロード中にエラーが発生した場合IOException
- 入出力エラーが発生した場合SecurityException
- セキュリティ・マネージャがインストールされ、それが未指定のアクセス権を拒否する場合- 導入されたバージョン:
- 13
-