java.io.File
Fileクラスは Objectクラスの直接のサブ・クラスです。
Serializableインターフェイスのサブ・クラスでもあります。
java.ioパッケージに含まれます。
個々のフィアルおよびディレクトリのオブジェクトを表すとともに、
ファイルシステムを操作するための手段を提供します。
Fileクラスのフィールド
Fileクラスには publicなフィールドとして
ディレクトリおよびパス指定の区切り文字のシステム依存を覆い隠すための
定数が用意されています。
separator, separatorCharはディレクトリの区切り、
たとえば UNIXのシステムなら "/" を与え、DOSのシステムならば "\" を与えます。
pathSeparator, pathSeparatorCharはディレクトリの区切り、
UNIXのシステムでも DOSのシステムでも ":" を与えます。
Char か Stringクラスかなど用途別に使い分けます。
全て staticなのでコンストラクタによって
オブジェクトを生成しなくても利用することができます。
これら以外には publicなフィールドはありません。
- public static final String separator
- public static final char separatorChar
- public static final String pathSeparator
- public static final char pathSeparatorChar
Fileクラスのメソッド
Fileクラスには、
引数の区別もすると全部で約 20個のコンストラクタとメソッドが定義されています。
メソッドの目的ごとに以下の項目のようにグループ分けして解説します。
- コンストラクタ
- ファイルおよびディレクトリに関する情報を取り出すメソッド
- ファイルおよびディレクトリを操作するメソッド
- ファイル名およびパス名を取り出すためのメソッド
- オブジェクト自体の情報を与えるメソッド
コンストラクタ
- public File(String path)
- public File(String path, String name)
- public File(File dir, String name)
最も一般的なコンストラクタでは、パス名を単独のStringクラスの引数で与えます。
パス名は絶対パス名でも相対パス名でもかまいません。
2個のString引数を与えた場合は、最初の引数をディレクトリのパス名と
解釈し、第2引数の相対パス名との間を、
システムのディレクトリの区切り文字によって結合します。
第1引数がディレクトリのFileのオブジェクトの場合は、第2引数の相対パス名と、
やはりシステムのディレクトリの区切り文字によって結合します。
ファイルおよびディレクトリに関する情報を取り出すメソッド
- public boolean exists()
- public boolean isFile()
- public boolean isDirectory()
- public boolean canWrite()
- public boolean canRead()
- public long length()
- public long lastModified()
exists()はオブジェクトに対応するファイル(ディレクトリ)が存在するか否かを、
isFile(),isDirectory()がオブジェクトに対応するファイル(ディレクトリ)が
存在し、なおかつ通常のファイルかディレクトリかを判定して返します。
canWrite(),canRead()はオブジェクトに対応するファイル(ディレクトリ)が
存在し、なおかつ書き込みもしくは読み込みの許可があるかを判定して返します。
length()はファイルのバイト数を返します。ファイルが存在しない場合の返値は
0L です。
lastModified()はタイムスタンプを表す long型の数値を返します。
ただし、その数値の基準時点はシステムに依存します。
タイムスタンプの新旧の相対評価のみならばシステムに依存しません。
ファイルおよびディレクトリを操作するメソッド
- public String[] list()
- public String[] list(FilenameFilter filter)
- public boolean mkdir()
- public boolean mkdirs()
- public boolean renameTo(File dest)
- public boolean delete()
list()は、ディレクトリのオブジェクトに対して、その中に含まれる
ファイル名の一覧を返します。Stringの配列は自動的にファイルの個数に
合わせてサイズが確保されます。
引数に FilenameFilterのオブジェクトを指定することで、
特定の識別子のファイルのみを取り出すこともできます。
mkdir()もmkdirs()も、共に新しいディレクトリを作成します。
mkdirs() は、新しいディレクトリを作成する時に、パス名の中に
まだ存在しないディレクトリ名がある場合に、それらも合わせて作成します。
renameTo()は現在のパス名を、
引数に与えられたファイルオブジェクトのパス名に変更をします。
delete()は文字どおり、そのオブジェクトに対応するファイルを削除します。
これらのメソッドはいずれも、
操作が実行できたかどうかの結果を返値として返します。
ファイル名およびパス名を取り出すためのメソッド
- public String getName()
- public String getPath()
- public native boolean isAbsolute()
- public String getAbsolutePath()
- public String getCanonicalPath() throws IOException
- public String getParent()
getName()はファイル(ディレクトリ)の単独の名を返します。
getPath()はオブジェクトを生成した時に与えた名を返します。
isAbsolute()はそのパス名が絶対パス名かどうかを返します。
getAbsolutePath()はファイルの絶対パス名を返します。
(ファイルが実在しない場合でも、形式的に文字列が作られます。)
getCanonicalPath()は絶対パス名からカレントディレクトリの
部分を取り去った相対パス名を返します。
実際のファイルシステムの状況と矛盾があれば、例外が発生します。
getParent()は親ディレクトリのパス名を返します。
オブジェクト自体の情報を与えるメソッド
- public int hashCode()
- public boolean equals(Object obj)
- public String toString()
hashCode()メソッドはオブジェクトのハッシュコードの値を返します。
equals()メソッドは、パス名が一致するかどうかを判定します。
(対応するファイルが実在しなくてもよい。)
toString()メソッドは、パス名を Stringクラスのオブジェクトとして返します。