java.io.File

Fileクラスは Objectクラスの直接のサブ・クラスです。 Serializableインターフェイスのサブ・クラスでもあります。 java.ioパッケージに含まれます。 個々のフィアルおよびディレクトリのオブジェクトを表すとともに、 ファイルシステムを操作するための手段を提供します。

Fileクラスのフィールド

Fileクラスには publicなフィールドとして ディレクトリおよびパス指定の区切り文字のシステム依存を覆い隠すための 定数が用意されています。 separator, separatorCharはディレクトリの区切り、 たとえば UNIXのシステムなら "/" を与え、DOSのシステムならば "\" を与えます。 pathSeparator, pathSeparatorCharはディレクトリの区切り、 UNIXのシステムでも DOSのシステムでも ":" を与えます。 Char か Stringクラスかなど用途別に使い分けます。 全て staticなのでコンストラクタによって オブジェクトを生成しなくても利用することができます。 これら以外には publicなフィールドはありません。

Fileクラスのメソッド

Fileクラスには、 引数の区別もすると全部で約 20個のコンストラクタとメソッドが定義されています。 メソッドの目的ごとに以下の項目のようにグループ分けして解説します。

  1. コンストラクタ
  2. ファイルおよびディレクトリに関する情報を取り出すメソッド
  3. ファイルおよびディレクトリを操作するメソッド
  4. ファイル名およびパス名を取り出すためのメソッド
  5. オブジェクト自体の情報を与えるメソッド

コンストラクタ

最も一般的なコンストラクタでは、パス名を単独のStringクラスの引数で与えます。 パス名は絶対パス名でも相対パス名でもかまいません。 2個のString引数を与えた場合は、最初の引数をディレクトリのパス名と 解釈し、第2引数の相対パス名との間を、 システムのディレクトリの区切り文字によって結合します。 第1引数がディレクトリのFileのオブジェクトの場合は、第2引数の相対パス名と、 やはりシステムのディレクトリの区切り文字によって結合します。

ファイルおよびディレクトリに関する情報を取り出すメソッド

exists()はオブジェクトに対応するファイル(ディレクトリ)が存在するか否かを、 isFile(),isDirectory()がオブジェクトに対応するファイル(ディレクトリ)が 存在し、なおかつ通常のファイルかディレクトリかを判定して返します。 canWrite(),canRead()はオブジェクトに対応するファイル(ディレクトリ)が 存在し、なおかつ書き込みもしくは読み込みの許可があるかを判定して返します。
length()はファイルのバイト数を返します。ファイルが存在しない場合の返値は 0L です。
lastModified()はタイムスタンプを表す long型の数値を返します。 ただし、その数値の基準時点はシステムに依存します。 タイムスタンプの新旧の相対評価のみならばシステムに依存しません。

ファイルおよびディレクトリを操作するメソッド

list()は、ディレクトリのオブジェクトに対して、その中に含まれる ファイル名の一覧を返します。Stringの配列は自動的にファイルの個数に 合わせてサイズが確保されます。 引数に FilenameFilterのオブジェクトを指定することで、 特定の識別子のファイルのみを取り出すこともできます。
mkdir()もmkdirs()も、共に新しいディレクトリを作成します。 mkdirs() は、新しいディレクトリを作成する時に、パス名の中に まだ存在しないディレクトリ名がある場合に、それらも合わせて作成します。 renameTo()は現在のパス名を、 引数に与えられたファイルオブジェクトのパス名に変更をします。 delete()は文字どおり、そのオブジェクトに対応するファイルを削除します。 これらのメソッドはいずれも、 操作が実行できたかどうかの結果を返値として返します。

ファイル名およびパス名を取り出すためのメソッド

getName()はファイル(ディレクトリ)の単独の名を返します。 getPath()はオブジェクトを生成した時に与えた名を返します。 isAbsolute()はそのパス名が絶対パス名かどうかを返します。 getAbsolutePath()はファイルの絶対パス名を返します。 (ファイルが実在しない場合でも、形式的に文字列が作られます。) getCanonicalPath()は絶対パス名からカレントディレクトリの 部分を取り去った相対パス名を返します。 実際のファイルシステムの状況と矛盾があれば、例外が発生します。 getParent()は親ディレクトリのパス名を返します。

オブジェクト自体の情報を与えるメソッド

hashCode()メソッドはオブジェクトのハッシュコードの値を返します。 equals()メソッドは、パス名が一致するかどうかを判定します。 (対応するファイルが実在しなくてもよい。) toString()メソッドは、パス名を Stringクラスのオブジェクトとして返します。