モジュール java.base

パッケージ java.nio.file

ファイル、ファイル属性、およびファイル・システムにアクセスするためのJava仮想マシン用のインタフェースとクラスを定義します。

java.nio.fileパッケージは、ファイルおよびファイル・システムにアクセスするためのクラスを定義します。 ファイル属性やファイル・システム属性にアクセスするためのAPIは、java.nio.file.attributeパッケージに定義されています。 java.nio.file.spiパッケージは、プラットフォームのデフォルト・プロバイダを拡張したり、他のプロバイダ実装を構築したりするサービス・プロバイダの実装者によって使用されます。

シンボリック・リンク

多くのオペレーティング・システムおよびファイル・システムで、シンボリック・リンクがサポートされています。 シンボリック・リンクとは、別のファイルへの参照として機能する特殊ファイルです。 ほとんどの場合、アプリケーションではシンボリック・リンクを意識する必要はなく、シンボリック・リンクに対する操作はそのリンクのターゲットに自動的にリダイレクトされます。 ただし、シンボリック・リンクを削除したり、名前変更または移動したりする場合は例外で、その場合はそのリンクのターゲットではなく、そのリンクが削除または除去されます。 このパッケージには、実装でこれらのセマンティックスを実現するシンボリック・リンクのサポートが含まれています。 ファイル・システムでは意味的に似通った他の種類のリンクをサポートしていることがありますが、それらのリンクのサポートはこのパッケージには含まれていません。

Interoperability

Fileクラスでは、java.io.Fileオブジェクトで表される抽象パスを変換することによってPathを構築するtoPathメソッドを定義します。 結果のPathを使用すると、Fileオブジェクトと同じファイルを操作できます。 Pathの仕様には、Pathjava.io.Fileオブジェクトとの相互運用性に関する詳細情報が記載されています。

可視性

このパッケージ内のクラスによって提供されるファイルやファイル・システムのビューは、同じJava仮想マシン内の他のインスタンスによって提供される他のビューと矛盾しないことが保証されています。 しかし、ベースとなるオペレーティング・システムのキャッシュ処理や、ネットワーク・ファイル・システム・プロトコルによる遅延が原因で、そのビューと、並行して実行されているプログラムで認識されるファイル・システムのビューが矛盾する可能性がないわけではありません。 この問題は、これらのプログラムを記述している言語の違いや、これらが同一マシンで実行されているかどうかとは関係なく発生します。 こうした矛盾は、システムによって生じるものであるため未指定です。

同期入出力ファイル整合性

SYNCおよびDSYNCオプションは、ファイルへの更新が基礎となるストレージ・デバイスにも同時に書き込まれる必要があるファイルを開く場合に使用されます。 デフォルト・プロバイダの場合で、ファイルがローカル・ストレージ・デバイスに格納されていて、シーク可能なチャネルがこれらのオプションのいずれかを使用して開いたファイルに接続されている場合、writeメソッドの呼出しは、その呼出しによってファイルに加えられたすべての変更がそのデバイスにも書き込まれた場合にのみ返します。 これらのオプションは、万一システム・クラッシュが発生した場合に重要な情報が失われることがないようにするのに役立ちます。 一方、ファイルがローカルの記憶装置上にない場合、書込みは行われません。 この保証が他のプロバイダ実装でも適用可能かどうかはプロバイダに固有のものです。

一般的な例外

特に指定がないかぎり、このパッケージ内のクラスまたはインタフェースのメソッドやコンストラクタにnull引数を渡すと、NullPointerExceptionがスローされます。 さらに、null要素を含む配列またはコレクションを持つメソッドを呼び出すと、特に指定がない限り、NullPointerExceptionが発生します。

特に指定がないかぎり、ファイル・システムへのアクセスを試みるメソッドは、クローズされているFileSystemに関連付けられたオブジェクトに対して呼び出されると、ClosedFileSystemExceptionをスローします。 また、ファイル・システムへの書込みアクセスを試みるメソッドはすべて、読取り専用アクセスのみを提供するFileSystemに関連付けられたオブジェクトに対して呼び出されると、ReadOnlyFileSystemExceptionをスローします。

特に指定がないかぎり、このパッケージ内のクラスまたはインタフェースのメソッドのうち、あるプロバイダによって別のプロバイダが作成したオブジェクトを示すパラメータで作成されたものを呼び出すと、ProviderMismatchExceptionがスローされます。

オプションの固有例外

このパッケージ内のクラスで定義されている、ファイル・システムにアクセスするメソッドのほとんどは、入出力エラーが発生した場合にIOExceptionがスローされるように指定します。 場合によっては、これらのメソッドが特定の入出力例外を一般的なケース用に定義することがあります。 これらの例外(オプションの固有例外として知られている)は、実装が特定のエラーを検出できた場合にそれによってスローされます。 特定のエラーを検出できない場合は、より一般的な IOExceptionがスローされます。
導入されたバージョン:
1.7