appendix> io> File TOPUPPREVNEXT

java.io.File

【主な機能】

ファイルまたはディレクトリについての情報(抽象バス名 という)を保持・設定するためのクラスです。
java.io パッケージでファイルを取り扱う際、文字列のパス名でファイルを指定することもできますが、 File クラスでパスを表現しておくと便利です。
ファイルの属性を処理したり、ディレクトリの内容を処理したりするメソッドが用意されています。 ファイル名が重複しないようにテンポラリ・ファイルを作成する機能もあります。
抽象パス名は、次の2つの要素からなっています。 「名前の列」の最後の名前は、ファイル名かディレクトリ名です。 それ以外は、ディレクトリ名です。

「空」の抽象パス名とは、「パスの先頭のための文字列」がなく、「名前の列」も空のものを言います。

抽象パス名には「絶対」と「相対」があります。 絶対パス名は単独でファイルを特定します。 相対パス名は、Java仮想マシンを呼び出した時点のカレントディレクトリを基準にファイルを特定します。

【フィールド】

名前意味
static String pathSeparator 複数のパスを区切る時に使用する文字を String として保持。 Windows では ";" 、 Unix 系では ":" です。
static char pathSeparatorChar 複数のパスを区切る時に使用する文字。 Windows では ';' 、 Unix 系では ':' です。
static String separator パス内のディレクトリを区切る文字を String として保持。 Windows では "\\" 、 Unix 系では "/" です。
static char separatorChar パス内のディレクトリを区切る文字。 Windows では '\\' 、 Unix 系では '/' です。

【コンストラクタ】

コンストラクタ機能
File ( File dir , String name )
File ( String dir , String name )
dir を上位パス、 name をファイル名または下位パスとした、 ディレクトリまたはファイルのための抽象パスを作成します。 dir が null の場合、次欄のコンストラクタと同義です。
name には null を指定できません。。 nullPointerException が発生します。
File ( String path ) path で指定したディレクトリまたはファイルのための抽象パスを作成します。
path は null ではいけません。 nullPointerException が発生します。 空文字列 "" を指定すると、空の抽象パスが作られます。
File ( URI uri ) uri には file: で始まるURIを指定します。 指定された URI から抽象パスを生成します。

【よく使われるメソッド】

メソッド機能
boolean canRead ( ) このファイルがアプリケーションで読める場合に true 、そうでない場合に false 。
セキュリティマネージャが存在し、 このファイルに対して SecurityManager.checkRead メソッドを呼び出した時 SecurityException が発生する状況であれば、 この canRead の呼び出しでも SecurityException が発生します。
boolean canWrite ( ) この抽象パスで特定されるファイルが存在し、アプリケーションで書き込める場合に true 、 そうでない場合 false 。
int compareTo ( File path ) この抽象パスと、抽象パス path が文字として比較されます。 この抽象パスのほうが path より小さい場合に負の値、 等しい場合にゼロ、path より大きい場合に正の値が返されます。
Java VM の走っている環境に左右されます。 Unix では大文字と小文字が区別されますが、 Windows では区別されません。
boorean createNewFile ( ) この抽象パスで示されるファイルが存在しない場合に空のファイルを新規に作成します。 ファイルの作成に成功した場合に true 、すでにファイルが存在した場合には false が返されます。 ファイルの存在をしらべて作成するという動作の間に、他のプロセスに割り込まれることはありません。
入出力エラーに対しては、IOException がスローされます。 セキュリティマネージャが存在し、SecurityManager.checkWrite に拒絶されると SecurityException がスローされます。
static File createTempFile (
String prefix ,
String suffix )
createTempFile( prefix, suffix, null ) と同じ。
static File createTempFile (
String prefix ,
String suffix ,
File dir )
dir で指定されたディレクトリに新しい空のファイルを生成します。 ファイルには、 prefix で始まり、 最後が suffix で終わり、 現在使用中のファイルの名前と重複しないような名前が付けられます。

prefix には3文字以上の文字列を指定します。 3文字未満であると、IllegalArgumentException が発生します。

suffix に null を指定すると、 ".tmp" が使われます。

例3 参照

boolean delete ( ) この抽象パス名で指定されたファイルまたはディレクトリを削除します。 ディレクトリを削除する場合は、空にしておく必要があります。 正常に削除された場合、 true が返されます。
セキュリティマネージャが存在し、SecurityManager.checkDelete に拒絶されると SecurityException がスローされます。
void deleteOnExit ( ) この抽象パス名で指定されたファイルまたはディレクトリを Java VM の終了時に削除するように設定します。この設定を取り消す方法はありません。 Java VM が正常終了する場合にだけ削除されます。
セキュリティマネージャが存在し、SecurityManager.checkDelete に拒絶されると SecurityException がスローされます。
boolean equals( Object obj ) この抽象パス名とobjで指定された抽象パス名が等しい場合 true になります。
Java VM の走っている環境に左右されます。 Unix では大文字と小文字が区別されますが、 Windows では区別されません。
boolean exists ( ) この抽象パス名で指定されるファイルまたはディレクトリが存在する場合 true になります。
セキュリティマネージャが存在し、 このファイルに対して SecurityManager.checkRead メソッドを呼び出した時 SecurityException が発生する状況であれば、 この canRead の呼び出しでも SecurityException が発生します。
File getAbsoluteFile ( ) この抽象パス名の絶対パス形式を返します。 new File(this.getAbsolutePath()) と同じ値。
String getAbsolutePath ( ) この抽象パス名の絶対パスを文字列で返します。
この抽象パス名がすでに絶対パスであれば getPath() と同じ値。 この抽象パス名が空の抽象パス名であれば、現在のユーザディレクトリ(システムプロパティ user.dir の値) のパス名が返されます。 それ以外の場合はJava VM の走っている環境によって次のように変換されます。
Unix の場合はユーザディレクトリを基準に相対パスが評価されます。 Windows の場合は、 カレントディレクトリが相対パス名に指定されたドライブにある場合にはカレントディレクトリを基準に、 そうでない場合にはユーザディレクトリを基準として相対パスを評価します。
File getCanonicalFile ( )
String getCanonicalPath ( )
String getName ( )
String getParent ( )
File getParentFile ( )
String getPath ( )
boolean isAbsolute ( )
boolean isDirectory ( )
boolean isFile ( )
boolean isHidden ( )
long lastModivied ( )
long length ( )
String [ ] list ( )
String [ ] list ( FileNameFilter f )
File [ ] listFiles ( )
File [ ] listFiles ( FileFilter f )
File [ ] listFiles ( FileNameFilter f )
static
File [ ] listRoots ( )
boolean mkdir ( )
boolean mkdirs ( )
boolean renameTo ( File dest )
boolean setLastModified ( long time )
boolean setReadOnly ( )
String toString ( )
URI toURI ( )
URL toURL ( )

使用例

【例1】

new File( "." ) の実行例。

プログラム FileDemo1.java

実行結果

FileDemo1-1.gif

【例2】

カレントディレクトリにファイルを新規作成する例。
通常はストリームを作成し、そのストリームに write を行い、 そのストリームを close すればファイルが作成されますから、 createNewFile を用いる必要はありません。

プログラム FileDemo2.java

実行結果

FileDemo2-1.gif

【例3】

createTempFile の例

プログラム FileDemo3.java

実行結果

FileDemo3-1.gif

更新日:2004-06-09