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

クラスFile

java.lang.Object
java.io.File
すべての実装されたインタフェース:
Serializable, Comparable<File>

public class File extends Object implements Serializable, Comparable<File>
ファイルおよびディレクトリのパス名の抽象表現です。

ユーザー・インタフェースおよびオペレーティング・システムは、システムに依存するパス名文字列でファイルおよびディレクトリを指定します。 このクラスは、階層的なパス名の抽象的でシステムに依存しないビューを提供します。 抽象パス名は2つのコンポーネントで構成されます。

  1. システムに依存する任意指定の接頭辞文字列。ディスク・ドライブ指示子、UNIXルート・ディレクトリの"/"、Microsoft Windows UNCパス名の"\\\" など
  2. ゼロ以上の文字列名前のシーケンス。
抽象パス名の最初の名前は、ディレクトリ名またはホスト名(Microsoft Windows UNCパス名の場合)にすることができます。 抽象パス名のそれ以降の各名前はディレクトリを示します。最後の名前はディレクトリとファイルのいずれかを示します。 の抽象パス名は接頭辞を持たず、名前シーケンスは空です。

パス名文字列と抽象パス名の間の変換は、本質的にシステムに依存します。 抽象パス名がパス名文字列に変換されると、各名前は1つのデフォルトの区切り文字で区切られます。 デフォルトの名前セパレータ文字は、システム・プロパティfile.separatorで定義され、このクラスのパブリック静的フィールドseparatorおよびseparatorCharで使用できるようになります。 パス名文字列が抽象パス名に変換されると、その中の名前はデフォルトの名前区切り文字で区切られるか、ベースとなるシステムがサポートするほかの名前区切り文字で区切られます。

パス名(抽象形式または文字列形式のどちらでも)は、絶対または相対のどちらかです。 絶対パス名は完全であり、それが示すファイルを見つけるためにほかの情報を必要としません。 一方、相対パス名は、ほかのパス名からの情報を利用して解釈される必要があります。 デフォルトでは、java.ioパッケージのクラスは、常に現在のユーザー・ディレクトリを基準に相対パス名を解決します。 このディレクトリはシステム・プロパティuser.dirで指定され、通常はJava仮想マシンの呼出し元のディレクトリです。

抽象パス名のは、このクラスのgetParent()メソッドを呼び出すことで取得でき、パス名の接頭辞(存在する場合)およびパス名の名前シーケンスの各名前(最後の名前を除く)で構成されます。 各ディレクトリの絶対パス名は、ディレクトリの絶対パス名で始まる絶対抽象パス名を持つ任意のFileオブジェクトの祖先です。 たとえば、抽象パス名"/usr"で示されるディレクトリは、パス名"/usr/local/bin"で示されるディレクトリの祖先です。

接頭辞の概念は、次のように、UNIXプラットフォームのルート・ディレクトリ、およびMicrosoft Windowsプラットフォームのドライブ指示子、ルート・ディレクトリ、およびUNCパス名を扱うために使用されます。

  • UNIXプラットフォームの場合、絶対パス名の接頭辞は常に"/"です。 相対パス名は接頭辞を持ちません。 ルート・ディレクトリを示す抽象パス名は、接頭辞"/"と空の名前シーケンスを持ちます。
  • Microsoft Windowsプラットフォームの場合、ドライブ指示子を含むパス名の接頭辞は、パス名が絶対の場合はドライブ名、":"(その後に"\"が続く場合がある)で構成されます。 UNCパス名の接頭辞は"\\\"です。ホスト名および共有名は名前シーケンス内の最初の2つの名前です。 ドライブを指定しない相対パス名は接頭辞を持ちません。

このクラスのインスタンスは、実際のファイル・システム・オブジェクト(ファイルやディレクトリなど)を示す場合も、示さない場合もあります。 このようなオブジェクトを示す場合、そのオブジェクトはパーティション内に存在します。 パーティションとは、ファイル・システム用の記憶域でオペレーティング・システム固有の部分です。 1つの記憶装置(物理ディスク・ドライブ、フラッシュ・メモリー、CD-ROMなど)に、複数のパーティションが含まれることがあります。 オブジェクトが存在する場合は、このパス名の絶対形式の上位にあるものによって指定されるパーティションに存在します。

ファイル・システムでは、実際のファイル・システム・オブジェクトに対する特定の操作(読み取り、書き込み、実行など)への制約を実装することができます。 これらの制約を総称してアクセス権と呼びます。 ファイル・システムには、1つのオブジェクトに対して複数の組のアクセス権が設定されていることがあります。 たとえば、ある組をオブジェクトの所有者に適用し、別の組をほかのすべてのユーザーに適用することができます。 オブジェクトのアクセス権が原因で、このクラスの一部のメソッドが失敗することがあります。

Fileクラスのインスタンスは不変です。つまり、一度作成されると、Fileオブジェクトで表される抽象パス名は変更されません。

java.nio.fileパッケージとの相互運用性

java.nio.fileパッケージは、ファイル、ファイル属性、およびファイル・システムにアクセスするためのJava仮想マシン用のインタフェースとクラスを定義します。 このAPIは、java.io.Fileクラスの多くの制限を克服するために使用できます。 Fileオブジェクトによって表される抽象パスを使用してファイルを見つけるPathを取得するには、toPathメソッドを使用します。 取得されたPathは、その後のファイル操作、ファイル属性、および入出力例外に対してより効率的で広範なアクセスを提供し、ファイルに対する操作が失敗したときにエラーを診断するために、Filesクラスで使用できます。

導入されたバージョン:
1.0
関連項目: