Java File クラス
Java では、File クラスは java.io パッケージの一部であり、ファイルとディレクトリのパス名を処理するために使用されます。
Java File クラスは、ファイル名とディレクトリパス名を抽象的な方法で表します。File クラスは主にファイルとディレクトリの作成、ファイルの検索、ファイルの削除などに使用されます。
File オブジェクトは、ディスク上に実際に存在するファイルとディレクトリを表し、以下のコンストラクタメソッドで File オブジェクトを作成します。
指定された親抽象パス名と子パス名文字列から、新しい File インスタンスを作成します:
File file = new File(File parent, String child);
指定されたパス名文字列を抽象パス名に変換して、新しい File インスタンスを作成します:
File file = new File(String pathname);
parent パス名文字列と child パス名文字列に基づいて、新しい File インスタンスを作成します。
File file = new File(String parent, String child);
指定された file: URI を抽象パス名に変換して、新しい File インスタンスを作成します。
File file = new File(URI uri)

例
// パス文字列で作成
File file1 = new File("C:/test/test.txt");
// 親パスと子パスで作成
File file2 = new File("C:/test", "test.txt");
// 親Fileオブジェクトと子パスで作成
File parent = new File("C:/test");
File file3 = new File(parent, "test.txt");
File file1 = new File("C:/test/test.txt");
// 親パスと子パスで作成
File file2 = new File("C:/test", "test.txt");
// 親Fileオブジェクトと子パスで作成
File parent = new File("C:/test");
File file3 = new File(parent, "test.txt");
File オブジェクトの作成に成功したら、以下のリストのメソッドを使用してファイルを操作できます。
| 番号 | メソッド説明 |
|---|---|
| 1 |
public String getName() この抽象パス名が表すファイルまたはディレクトリの名前を返します。 |
| 2 |
public String getParent() この抽象パス名の親パス名のパス名文字列を返します。このパス名に親ディレクトリが指定されていない場合は null を返します。 null。 |
| 3 |
public File getParentFile() この抽象パス名の親パス名の抽象パス名を返します。このパス名に親ディレクトリが指定されていない場合は null を返します。 null。 |
| 4 |
public String getPath() この抽象パス名をパス名文字列に変換します。 |
| 5 |
public boolean isAbsolute() この抽象パス名が絶対パス名であるかどうかをテストします。 |
| 6 |
public String getAbsolutePath() 抽象パス名の絶対パス名文字列を返します。 |
| 7 |
public boolean canRead() アプリケーションがこの抽象パス名が表すファイルを読み取れるかどうかをテストします。 |
| 8 |
public boolean canWrite() アプリケーションがこの抽象パス名が表すファイルを変更できるかどうかをテストします。 |
| 9 |
public boolean exists() この抽象パス名が表すファイルまたはディレクトリが存在するかどうかをテストします。 |
| 10 |
public boolean isDirectory() この抽象パス名が表すファイルがディレクトリであるかどうかをテストします。 |
| 11 |
public boolean isFile() この抽象パス名が表すファイルが標準ファイルであるかどうかをテストします。 |
| 12 |
public long lastModified() この抽象パス名が表すファイルが最後に変更された時刻を返します。 |
| 13 |
public long length() この抽象パス名が表すファイルの長さを返します。 |
| 14 |
public boolean createNewFile() throws IOException この抽象パス名で指定された名前のファイルが存在しない場合に限り、この抽象パス名で指定された新しい空ファイルをアトミックに作成します。 |
| 15 |
public boolean delete() この抽象パス名が表すファイルまたはディレクトリを削除します。 |
| 16 |
public void deleteOnExit() 仮想マシンの終了時に、この抽象パス名が表すファイルまたはディレクトリの削除を要求します。 |
| 17 |
public String[] list() この抽象パス名が表すディレクトリ内のファイルとディレクトリの名前で構成される文字列配列を返します。 |
| 18 |
public String[] list(FilenameFilter filter) 指定されたフィルターを満たす抽象パス名で表されるディレクトリに含まれるファイルとディレクトリの名前で構成される文字列配列を返します。 |
| 19 |
public File[] listFiles() この抽象パス名が表すディレクトリ内のファイルを表す抽象パス名の配列を返します。 |
| 20 |
public File[] listFiles(FileFilter filter) この抽象パス名が表すディレクトリ内のファイルとディレクトリを表す抽象パス名の配列を返します。これらのパス名は特定のフィルターを満たします。 |
| 21 |
public boolean mkdir() この抽象パス名で指定されたディレクトリを作成します。 |
| 22 |
public boolean mkdirs() この抽象パス名で指定されたディレクトリを作成します。必要だが存在しない親ディレクトリも作成します。 |
| 23 |
public boolean renameTo(File dest) この抽象パス名が表すファイルの名前を変更します。 |
| 24 |
public boolean setLastModified(long time) この抽象パス名で指定されたファイルまたはディレクトリの最終変更時刻を設定します。 |
| 25 |
public boolean setReadOnly() この抽象パス名で指定されたファイルまたはディレクトリを、読み取り操作のみ可能にマークします。 |
| 26 |
public static File createTempFile(String prefix, String suffix, File directory) throws IOException 指定されたディレクトリに、指定されたプレフィックスとサフィックス文字列を使用してその名前を生成する新しい空ファイルを作成します。 |
| 27 |
public static File createTempFile(String prefix, String suffix) throws IOException デフォルトの一時ファイルディレクトリに、指定されたプレフィックスとサフィックスを使用して名前を生成し、空ファイルを作成します。 |
| 28 |
public int compareTo(File pathname) 2つの抽象パス名をアルファベット順に比較します。 |
| 29 |
public int compareTo(Object o) 抽象パス名と指定されたオブジェクトをアルファベット順に比較します。 |
| 30 |
public boolean equals(Object obj) この抽象パス名が指定されたオブジェクトと等しいかどうかをテストします。 |
| 31 |
public String toString() この抽象パス名のパス名文字列を返します。 |
例
以下の例は、File オブジェクトの使用方法を示しています:
例
import java.io.File;
public class DirList {
public static void main(String args[]) {
String dirname = "/java";
File f1 = new File(dirname);
if (f1.isDirectory()) {
System.out.println("Directory of " + dirname);
String s[] = f1.list();
for (int i = 0; i < s.length; i++) {
File f = new File(dirname + "/" + s[i]);
if (f.isDirectory()) {
System.out.println(s[i] + " is a directory");
} else {
System.out.println(s[i] + " is a file");
}
}
} else {
System.out.println(dirname + " is not a directory");
}
}
}
上記の例をコンパイルして実行した結果は次のとおりです:
Directory of /java bin is a directory lib is a directory demo is a directory test.txt is a file README is a file index.html is a file include is a directory
その他の拡張
Java ストリーム(Stream)