Java : File (ファイル) - API使用例
File (Java SE 20 & JDK 20) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様のおともにどうぞ。
注意
概要
ファイルおよびディレクトリのパス名の抽象表現です。
ノート
- 本記事のコード例の多くは Windows で実行しています。
ただし、一部 Linux で実行しているものもあります。
final var file = new File("R:\\java-work\\aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt
System.out.println(file.exists()); // false
try (final var writer = new FileWriter(file)) {
writer.write("abc");
writer.write("XYZ");
}
System.out.println(file.exists()); // true
System.out.println(file.isFile()); // true
System.out.println(file.isDirectory()); // false
// --- PowerShell ---
//PS R:\java-work> ls -Name
//aaa.txt
//
//PS R:\java-work> cat aaa.txt
//abcdXYZ
フィールド
static final String pathSeparator
システムに依存するパス区切り文字です。利便性のため文字列で表されます。
final var os = System.getProperty("os.name");
System.out.println(os); // Windows 10
System.out.println(File.pathSeparator); // ;
System.out.println(Arrays.toString(File.pathSeparator.getBytes())); // [59]
static final char pathSeparatorChar
システムに依存するパス区切り文字です。
final var os = System.getProperty("os.name");
System.out.println(os); // Windows 10
System.out.println(File.pathSeparatorChar); // ;
final int c = File.pathSeparatorChar;
System.out.println(c); // 59
static final String separator
システムに依存するデフォルトの名前区切り文字です。利便性のため文字列で表されます。
final var os = System.getProperty("os.name");
System.out.println(os); // Windows 10
System.out.println(File.separator); // \
System.out.println(Arrays.toString(File.separator.getBytes())); // [92]
static final char separatorChar
システムに依存するデフォルトの名前区切り文字です。
final var os = System.getProperty("os.name");
System.out.println(os); // Windows 10
System.out.println(File.separatorChar); // \
final int c = File.separatorChar;
System.out.println(c); // 92
コンストラクタ
File (File parent, String child)
親抽象パス名および子パス名文字列から新しいFileのインスタンスを生成します。
final var parent = new File("R:\\java-work");
System.out.println(parent); // R:\java-work
final var file = new File(parent, "aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt
System.out.println(file.exists()); // false
System.out.println(file.createNewFile()); // true
System.out.println(file.exists()); // true
File (String pathname)
指定されたパス名文字列を抽象パス名に変換して、新しいFileのインスタンスを生成します。
final var file = new File("R:\\java-work\\aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt
System.out.println(file.exists()); // false
System.out.println(file.createNewFile()); // true
System.out.println(file.exists()); // true
File (String parent, String child)
親パス名文字列および子パス名文字列から新しいFileのインスタンスを生成します。
final var parent = "R:\\java-work";
System.out.println(parent); // R:\java-work
final var file = new File(parent, "aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt
System.out.println(file.exists()); // false
System.out.println(file.createNewFile()); // true
System.out.println(file.exists()); // true
File (URI uri)
指定されたfile: URIを抽象パス名に変換して、新しいFileインスタンスを作成します。
final var uri = URI.create("file:///R:/java-work/aaa.txt");
System.out.println(uri); // file:///R:/java-work/aaa.txt
final var file = new File(uri);
System.out.println(file); // R:\java-work\aaa.txt
System.out.println(file.exists()); // false
System.out.println(file.createNewFile()); // true
System.out.println(file.exists()); // true
メソッド
boolean canExecute ()
この抽象パス名が示すファイルをアプリケーションが実行できるかどうかを判定します。
// --- Linux Terminal ---
//$ touch sample1.sh
//$ ls -l sample1.sh
//-rw-rw-r-- 1 xxxx xxxx 0 Sep 4 16:27 sample1.sh
final var os = System.getProperty("os.name");
System.out.println(os); // Linux
final var file = new File("sample1.sh");
System.out.println(file); // sample1.sh
System.out.println(file.canExecute()); // false
System.out.println(file.setExecutable(true)); // true
System.out.println(file.canExecute()); // true
// --- Linux Terminal ---
//$ ls -l sample1.sh
//-rwxrw-r-- 1 xxxx xxxx 0 Sep 4 16:27 sample1.sh
// --- Linux Terminal ---
//$ touch sample2.sh
//$ ls -l sample2.sh
//-rw-rw-r-- 1 xxxx xxxx 0 Sep 4 16:31 sample2.sh
final var file = new File("sample2.sh");
System.out.println(file); // sample2.sh
System.out.println(file.canExecute()); // false
System.out.println(file.setExecutable(true, false)); // true
System.out.println(file.canExecute()); // true
// --- Linux Terminal ---
//$ ls -l sample2.sh
//-rwxrwxr-x 1 xxxx xxxx 0 Sep 4 16:31 sample2.sh
boolean canRead ()
この抽象パス名が示すファイルをアプリケーションが読み込めるかどうかを判定します。
// --- Linux Terminal ---
//$ touch sample1.txt
//$ ls -l sample1.txt
//-rw-rw-r-- 1 xxxx xxxx 0 Sep 4 16:54 sample1.txt
final var os = System.getProperty("os.name");
System.out.println(os); // Linux
final var file = new File("sample1.txt");
System.out.println(file); // sample1.txt
System.out.println(file.canRead()); // true
System.out.println(file.setReadable(false)); // true
System.out.println(file.canRead()); // false
// --- Linux Terminal ---
//$ ls -l sample1.txt
//--w-rw-r-- 1 xxxx xxxx 0 Sep 4 16:54 sample1.txt
// --- Linux Terminal ---
//$ touch sample2.txt
//$ ls -l sample2.txt
//-rw-rw-r-- 1 xxxx xxxx 0 Sep 4 17:01 sample2.txt
final var file = new File("sample2.txt");
System.out.println(file); // sample2.txt
System.out.println(file.canRead()); // true
System.out.println(file.setReadable(false, false)); // true
System.out.println(file.canRead()); // false
// --- Linux Terminal ---
//$ ls -l sample2.txt
//--w--w---- 1 xxxx xxxx 0 Sep 4 17:01 sample2.txt
boolean canWrite ()
この抽象パス名が示すファイルをアプリケーションが変更できるかどうかを判定します。
// --- Linux Terminal ---
//$ touch sample1.txt
//$ ls -l sample1.txt
//-rw-rw-r-- 1 xxxx xxxx 0 Sep 4 17:04 sample1.txt
final var os = System.getProperty("os.name");
System.out.println(os); // Linux
final var file = new File("sample1.txt");
System.out.println(file); // sample1.txt
System.out.println(file.canWrite()); // true
System.out.println(file.setWritable(false)); // true
System.out.println(file.canWrite()); // false
// --- Linux Terminal ---
//$ ls -l sample1.txt
//-r--rw-r-- 1 xxxx xxxx 0 Sep 4 17:04 sample1.txt
// --- Linux Terminal ---
//$ touch sample2.txt
//$ ls -l sample2.txt
//-rw-rw-r-- 1 xxxx xxxx 0 Sep 4 17:05 sample2.txt
final var file = new File("sample2.txt");
System.out.println(file); // sample2.txt
System.out.println(file.canWrite()); // true
System.out.println(file.setWritable(false, false)); // true
System.out.println(file.canWrite()); // false
// --- Linux Terminal ---
//$ ls -l sample2.txt
//-r--r--r-- 1 xxxx xxxx 0 Sep 4 17:05 sample2.txt
int compareTo (File pathname)
2つの抽象パス名を語彙的に比較します。
final var os = System.getProperty("os.name");
System.out.println(os); // Windows 10
// Windows は大文字小文字の区別はありません。
final var file1 = new File("aaa.txt");
final var file2 = new File("AAA.txt");
System.out.println(file1); // aaa.txt
System.out.println(file2); // AAA.txt
System.out.println(file1.compareTo(file2)); // 0
final var file1 = new File("aaa.txt");
final var file2 = new File("bbb.txt");
System.out.println(file1); // aaa.txt
System.out.println(file2); // bbb.txt
System.out.println(file1.compareTo(file2)); // -1
System.out.println(file2.compareTo(file1)); // 1
boolean createNewFile ()
この抽象パス名が示す空の新しいファイルを不可分(atomic)に生成します(その名前のファイルがまだ存在しない場合だけ)。
final var file = new File("R:\\java-work\\aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt
System.out.println(file.exists()); // false
System.out.println(file.createNewFile()); // true
System.out.println(file.exists()); // true
System.out.println(file.createNewFile()); // false
static File createTempFile (String prefix, String suffix)
指定された接頭辞と接尾辞をファイル名の生成に使用して、デフォルトの一時ファイル・ディレクトリに空のファイルを生成します。
final var ret1 = File.createTempFile("prefix-", "-suffix");
System.out.println(ret1); // C:\Users\xxx\AppData\Local\Temp\prefix-1788635824849128964-suffix
final var ret2 = File.createTempFile("abcd-", ".txt");
System.out.println(ret2); // C:\Users\xxx\AppData\Local\Temp\abcd-2471973508160575501.txt
final var ret3 = File.createTempFile("prefix-", null);
System.out.println(ret3); // C:\Users\xxx\AppData\Local\Temp\prefix-4955106351488410780.tmp
static File createTempFile (String prefix, String suffix, File directory)
指定されたディレクトリで新しい空のファイルを生成し、その名前には、指定された接頭辞および接尾辞の文字列が使用されます。
final var dir = new File("R:\\java-work");
System.out.println(dir); // R:\java-work
System.out.println(dir.isDirectory()); // true
final var ret1 = File.createTempFile("prefix-", "-suffix", dir);
System.out.println(ret1); // R:\java-work\prefix-11985693266629058833-suffix
final var ret2 = File.createTempFile("abcd-", ".txt", dir);
System.out.println(ret2); // R:\java-work\abcd-17241334720235449415.txt
final var ret3 = File.createTempFile("prefix-", null, dir);
System.out.println(ret3); // R:\java-work\prefix-16933306792652896919.tmp
boolean delete ()
この抽象パス名が示すファイルまたはディレクトリを削除します。
final var file = new File("R:\\java-work\\aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt
final var dir = new File("R:\\java-work\\dir");
System.out.println(dir); // R:\java-work\dir
System.out.println(file.createNewFile()); // true
System.out.println(dir.mkdir()); // true
// --- PowerShell ---
//PS R:\java-work> ls | Format-Table -Property Mode, Name
//
//Mode Name
//---- ----
//d---- dir
//-a--- aaa.txt
System.out.println(file.delete()); // true
System.out.println(file.exists()); // false
//PS R:\java-work> ls | Format-Table -Property Mode, Name
//
//Mode Name
//---- ----
//d---- dir
System.out.println(dir.delete()); // true
System.out.println(dir.exists()); // false
// --- PowerShell ---
//PS R:\java-work> ls
//<ファイル・ディレクトリなし>
// --- PowerShell ---
//PS R:\java-work> tree /F
//...
//R:.
//└─dir
// aaa.txt
// bbb.txt
final var dir = new File("R:\\java-work\\dir");
System.out.println(dir); // R:\java-work\dir
System.out.println(dir.isDirectory()); // true
System.out.println(dir.delete()); // false
void deleteOnExit ()
この抽象パス名が示すファイルまたはディレクトリが、仮想マシンが終了したときに削除されるように要求します。
public class Main {
public static void main(String[] args) throws IOException {
final var file = new File("sample.txt");
System.out.println("file = " + file);
System.out.println("file.exists = " + file.exists());
file.deleteOnExit();
System.out.println("deleteOnExit : OK!");
System.out.println("file.exists = " + file.exists());
}
}
// --- PowerShell ---
//PS R:\java-work> ls -Name
//Main.java
//sample.txt
//
//PS R:\java-work> java Main.java
//file = sample.txt
//file.exists = true
//deleteOnExit : OK!
//file.exists = true
//
//PS R:\java-work> ls -Name
//Main.java
boolean equals (Object obj)
この抽象パス名が指定されたオブジェクトと等しいかどうかを判定します。
final var os = System.getProperty("os.name");
System.out.println(os); // Windows 10
// Windows は大文字小文字の区別はありません。
final var file1 = new File("aaa.txt");
final var file2 = new File("AAA.txt");
System.out.println(file1); // aaa.txt
System.out.println(file2); // AAA.txt
System.out.println(file1.equals(file2)); // true
final var file1 = new File("aaa.txt");
final var file2 = new File("bbb.txt");
System.out.println(file1); // aaa.txt
System.out.println(file2); // bbb.txt
System.out.println(file1.equals(file2)); // false
System.out.println(file2.equals(file1)); // false
boolean exists ()
この抽象パス名が示すファイルまたはディレクトリが存在するかどうかを判定します。
final var file = new File("R:\\java-work\\aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt
final var dir = new File("R:\\java-work\\dir");
System.out.println(dir); // R:\java-work\dir
final var nonExistentPath = new File("R:\\java-work\\xxx");
System.out.println(nonExistentPath); // R:\java-work\xxx
System.out.println(file.createNewFile()); // true
System.out.println(dir.mkdir()); // true
// --- PowerShell ---
//PS R:\java-work> ls | Format-Table -Property Mode, Name
//
//Mode Name
//---- ----
//d---- dir
//-a--- aaa.txt
System.out.println(file.isFile()); // true
System.out.println(file.isDirectory()); // false
System.out.println(file.exists()); // true
System.out.println(dir.isFile()); // false
System.out.println(dir.isDirectory()); // true
System.out.println(dir.exists()); // true
System.out.println(nonExistentPath.isFile()); // false
System.out.println(nonExistentPath.isDirectory()); // false
System.out.println(nonExistentPath.exists()); // false
File getAbsoluteFile ()
この抽象パス名の絶対形式を返します。
public class Main {
public static void main(String[] args) throws IOException {
final var userDir = System.getProperty("user.dir");
System.out.println("user.dir = " + userDir);
{
final var file = new File("aaa.txt");
System.out.println("------");
System.out.println("file = " + file);
System.out.println("isAbsolute = " + file.isAbsolute());
System.out.println("getAbsoluteFile = " + file.getAbsoluteFile());
System.out.println("getAbsolutePath = " + file.getAbsolutePath());
}
{
final var file = new File("R:\\java-work\\bbb.txt");
System.out.println("------");
System.out.println("file = " + file);
System.out.println("isAbsolute = " + file.isAbsolute());
System.out.println("getAbsoluteFile = " + file.getAbsoluteFile());
System.out.println("getAbsolutePath = " + file.getAbsolutePath());
}
}
}
// --- PowerShell ---
//PS R:\java-work> java Main.java
//user.dir = R:\java-work
//------
//file = aaa.txt
//isAbsolute = false
//getAbsoluteFile = R:\java-work\aaa.txt
//getAbsolutePath = R:\java-work\aaa.txt
//------
//file = R:\java-work\bbb.txt
//isAbsolute = true
//getAbsoluteFile = R:\java-work\bbb.txt
//getAbsolutePath = R:\java-work\bbb.txt
String getAbsolutePath ()
この抽象パス名の絶対パス名文字列を返します。
このメソッドの使用例は、getAbsoluteFile() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
File getCanonicalFile ()
この抽象パス名の正規の形式を返します。
public class Main {
public static void main(String[] args) throws IOException {
final var userDir = System.getProperty("user.dir");
System.out.println("user.dir = " + userDir);
{
final var file = new File("dir\\aaa.txt");
System.out.println("------");
System.out.println("file = " + file);
System.out.println("getCanonicalFile = " + file.getCanonicalFile());
System.out.println("getCanonicalPath = " + file.getCanonicalPath());
}
{
final var file = new File("dir\\..\\bbb.txt");
System.out.println("------");
System.out.println("file = " + file);
System.out.println("getCanonicalFile = " + file.getCanonicalFile());
System.out.println("getCanonicalPath = " + file.getCanonicalPath());
}
}
}
// --- PowerShell ---
//PS R:\java-work> java Main.java
//user.dir = R:\java-work
//------
//file = dir\aaa.txt
//getCanonicalFile = R:\java-work\dir\aaa.txt
//getCanonicalPath = R:\java-work\dir\aaa.txt
//------
//file = dir\..\bbb.txt
//getCanonicalFile = R:\java-work\bbb.txt
//getCanonicalPath = R:\java-work\bbb.txt
String getCanonicalPath ()
この抽象パス名の正規のパス名文字列を返します。
このメソッドの使用例は、getCanonicalFile() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
long getFreeSpace ()
この抽象パス名で指定されるパーティション内で未割当てのバイト数を返します。
final var file = new File("D:");
System.out.println(file); // D:
// --- PowerShell ---
//PS R:\java-work> Get-PSDrive D
//
//Name Used (GB) Free (GB) Provider Root ...
//---- --------- --------- -------- ---- ...
//D 1665.41 197.48 FileSystem D:\ ...
System.out.println(file.getTotalSpace()); // 2000263573504
System.out.println(file.getFreeSpace()); // 212039778304
System.out.println(file.getUsableSpace()); // 212039778304
String getName ()
この抽象パス名が示すファイルまたはディレクトリの名前を返します。
final var file = new File("dir1\\dir2\\aaa.txt");
System.out.println(file.getPath()); // dir1\dir2\aaa.txt
System.out.println(file.getName()); // aaa.txt
System.out.println(file.getParent()); // dir1\dir2
String getParent ()
この抽象パス名の親のパス名文字列を返します。このパス名が親ディレクトリを示さない場合はnullを返します。
このメソッドの使用例は、getName() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
File getParentFile ()
この抽象パス名の親の抽象パス名を返します。このパス名が親ディレクトリを示さない場合はnullを返します。
final var file = new File("dir1\\dir2\\aaa.txt");
System.out.println(file); // dir1\dir2\aaa.txt
final var parent = file.getParentFile();
System.out.println(parent); // dir1\dir2
final var parentParent = parent.getParentFile();
System.out.println(parentParent); // dir1
String getPath ()
この抽象パス名をパス名文字列に変換します。
このメソッドの使用例は、getName() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
long getTotalSpace ()
この抽象パス名で指定されるパーティションのサイズを返します。
このメソッドの使用例は、getFreeSpace() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
long getUsableSpace ()
この抽象パス名で指定されるパーティション上で、この仮想マシンが利用できるバイト数を返します。
このメソッドの使用例は、getFreeSpace() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
int hashCode ()
この抽象パス名のハッシュ・コードを計算します。
final var os = System.getProperty("os.name");
System.out.println(os); // Windows 10
// Windows は大文字小文字の区別はありません。
final var ret1 = new File("aaa.txt").hashCode();
System.out.println(ret1); // -1239232814
final var ret2 = new File("AAA.TXT").hashCode();
System.out.println(ret2); // -1239232814
final var ret1 = new File("dir1\\dir2\\aaa.txt").hashCode();
System.out.println(ret1); // -639828267
final var ret2 = new File("R:\\java-work\\aaa.txt").hashCode();
System.out.println(ret2); // 503453694
boolean isAbsolute ()
この抽象パス名が絶対かどうかを判定します。
このメソッドの使用例は、getAbsoluteFile() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
boolean isDirectory ()
この抽象パス名が示すファイルがディレクトリであるかどうかを判定します。
このメソッドの使用例は、exists() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
boolean isFile ()
この抽象パス名が示すファイルが普通のファイルかどうかを判定します。
このメソッドの使用例は、exists() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
boolean isHidden ()
この抽象パス名が示すファイルが隠しファイルかどうかを判定します。
final var file = new File("R:\\java-work\\aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt
System.out.println(file.createNewFile()); // true
System.out.println(file.isHidden()); // false
// --- PowerShell ---
//PS R:\java-work> ls -Force | Format-Table -Property Mode, Name
//
//Mode Name
//---- ----
//-a--- aaa.txt
Files.setAttribute(file.toPath(), "dos:hidden", true);
System.out.println(file.isHidden()); // true
// --- PowerShell ---
//PS R:\java-work> ls -Force | Format-Table -Property Mode, Name
//
//Mode Name
//---- ----
//-a-h- aaa.txt
long lastModified ()
この抽象パス名が示すファイルが最後に変更された時間を返します。
final var file = new File("R:\\java-work\\aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt
System.out.println(file.createNewFile()); // true
final var zoneId = ZoneId.systemDefault();
System.out.println(zoneId); // Asia/Tokyo
final var dateTime1 = ZonedDateTime.of(2100, 1, 1, 0, 0, 0, 0, zoneId);
System.out.println(dateTime1); // 2100-01-01T00:00+09:00[Asia/Tokyo]
final var ret = file.setLastModified(dateTime1.toInstant().toEpochMilli());
System.out.println(ret); // true
// --- PowerShell ---
//PS R:\java-work> ls | Format-Table -Property LastWriteTime, Name
//
//LastWriteTime Name
//------------- ----
//2100/01/01 0:00:00 aaa.txt
final var lastModified = file.lastModified();
System.out.println(lastModified); // 4102412400000
final var dateTime2 = ZonedDateTime.ofInstant(
Instant.ofEpochMilli(lastModified), zoneId);
System.out.println(dateTime2); // 2100-01-01T00:00+09:00[Asia/Tokyo]
long length ()
この抽象パス名に指定されているファイルの長さを返します。
// --- PowerShell ---
//PS R:\java-work> tree /F
//...
//R:.
//│ aaa.txt
//│ bbb.txt
//│
//└─dir
// ccc.txt
//
//PS R:\java-work> ls | Format-Table -Property Length, Name
//
//Length Name
//------ ----
// dir
//5 aaa.txt
//1000 bbb.txt
//
//PS R:\java-work> ls dir | Format-Table -Property Length, Name
//
//Length Name
//------ ----
// 12 ccc.txt
final var file1 = new File("R:\\java-work\\aaa.txt");
System.out.println(file1); // R:\java-work\aaa.txt
System.out.println(file1.length()); // 5
final var file2 = new File("R:\\java-work\\bbb.txt");
System.out.println(file2); // R:\java-work\bbb.txt
System.out.println(file2.length()); // 1000
final var dir = new File("R:\\java-work\\dir");
System.out.println(dir); // R:\java-work\dir
System.out.println(dir.length()); // 0
String[] list ()
この抽象パス名が示すディレクトリにあるファイルおよびディレクトリを示す文字列の配列を返します。
// --- PowerShell ---
//PS R:\java-work> tree /F
//...
//R:.
//│ aaa.txt
//│ bbb.txt
//│
//└─dir
// ccc.txt
// ddd.txt
{
final var dir = new File("R:\\java-work");
System.out.println(dir); // R:\java-work
final var ret = dir.list();
System.out.println(Arrays.toString(ret)); // [aaa.txt, bbb.txt, dir]
}
{
final var dir = new File("R:\\java-work\\dir");
System.out.println(dir); // R:\java-work\dir
final var ret = dir.list();
System.out.println(Arrays.toString(ret)); // [ccc.txt, ddd.txt]
}
String[] list (FilenameFilter filter)
この抽象パス名が示すディレクトリにあるファイルおよびディレクトリの中で、指定されたフィルタの基準を満たすものの文字列の配列を返します。
// --- PowerShell ---
//PS R:\java-work> ls -Name
//aaa.txt
//bbb.jpg
//ccc.txt
//ddd.jpg
final var dir = new File("R:\\java-work");
System.out.println(dir); // R:\java-work
final var filter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
};
final var ret1 = dir.list();
System.out.println(Arrays.toString(ret1)); // [aaa.txt, bbb.jpg, ccc.txt, ddd.jpg]
final var ret2 = dir.list(filter);
System.out.println(Arrays.toString(ret2)); // [aaa.txt, ccc.txt]
File[] listFiles ()
この抽象パス名が示すディレクトリ内のファイルを示す抽象パス名の配列を返します。
// --- PowerShell ---
//PS R:\java-work> tree /F
//...
//R:.
//│ aaa.txt
//│ bbb.txt
//│
//└─dir
// ccc.txt
// ddd.txt
{
final var dir = new File("R:\\java-work");
System.out.println(dir); // R:\java-work
final var files = dir.listFiles();
if (files != null) {
System.out.println("-- listFiles --");
for (final var file : files) {
System.out.println(file);
}
}
// 結果
// ↓
//-- listFiles --
//R:\java-work\aaa.txt
//R:\java-work\bbb.txt
//R:\java-work\dir
}
{
final var dir = new File("R:\\java-work\\dir");
System.out.println(dir); // R:\java-work\dir
final var files = dir.listFiles();
if (files != null) {
System.out.println("-- listFiles --");
for (final var file : files) {
System.out.println(file);
}
}
// 結果
// ↓
//-- listFiles --
//R:\java-work\dir\ccc.txt
//R:\java-work\dir\ddd.txt
}
File[] listFiles (FileFilter filter)
この抽象パス名が示すディレクトリにあるファイルおよびディレクトリの中で、指定されたフィルタの基準を満たすものの抽象パス名の配列を返します。
// --- PowerShell ---
//PS R:\java-work> ls -Name
//aaa.txt
//bbb.jpg
//ccc.txt
//ddd.jpg
final var dir = new File("R:\\java-work");
System.out.println(dir); // R:\java-work
final var filter = new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".txt");
}
};
final var files = dir.listFiles(filter);
if (files != null) {
System.out.println("-- listFiles --");
for (final var file : files) {
System.out.println(file);
}
}
// 結果
// ↓
//-- listFiles --
//R:\java-work\aaa.txt
//R:\java-work\ccc.txt
File[] listFiles (FilenameFilter filter)
この抽象パス名が示すディレクトリにあるファイルおよびディレクトリの中で、指定されたフィルタの基準を満たすものの抽象パス名の配列を返します。
// --- PowerShell ---
//PS R:\java-work> ls -Name
//aaa.txt
//bbb.jpg
//ccc.txt
//ddd.jpg
final var dir = new File("R:\\java-work");
System.out.println(dir); // R:\java-work
final var filter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
};
final var files = dir.listFiles(filter);
if (files != null) {
System.out.println("-- listFiles --");
for (final var file : files) {
System.out.println(file);
}
}
// 結果
// ↓
//-- listFiles --
//R:\java-work\aaa.txt
//R:\java-work\ccc.txt
static File[] listRoots ()
有効なファイル・システムのルートをリスト表示します。
final var roots = File.listRoots();
for (final var root : roots) {
System.out.println(root);
}
// 結果
// ↓
//C:\
//D:\
//...
boolean mkdir ()
この抽象パス名が示すディレクトリを生成します。
// --- PowerShell ---
//PS R:\java-work> ls -Name
//<ファイル・ディレクトリなし>
final var dir1 = new File("R:\\java-work\\dir1");
System.out.println(dir1); // R:\java-work\dir1
System.out.println(dir1.mkdir()); // true
// --- PowerShell ---
//PS R:\java-work> tree /F
//...
//R:.
//└─dir1
final var dir2 = new File(dir1, "dir2");
System.out.println(dir2); // R:\java-work\dir1\dir2
System.out.println(dir2.mkdir()); // true
// --- PowerShell ---
//PS R:\java-work> tree /F
//...
//R:.
//└─dir1
// └─dir2
// --- PowerShell ---
//PS R:\java-work> ls -Name
//<ファイル・ディレクトリなし>
final var dir = new File("R:\\java-work\\dir1\\dir2");
System.out.println(dir); // R:\java-work\dir1\dir2
System.out.println(dir.mkdir()); // false
// --- PowerShell ---
//PS R:\java-work> ls -Name
//<ファイル・ディレクトリなし>
boolean mkdirs ()
この抽象パス名が示すディレクトリを生成します。存在していないが必要な親ディレクトリも一緒に作成されます。
// --- PowerShell ---
//PS R:\java-work> ls -Name
//<ファイル・ディレクトリなし>
final var dir = new File("R:\\java-work\\dir1\\dir2");
System.out.println(dir); // R:\java-work\dir1\dir2
System.out.println(dir.mkdirs()); // true
// --- PowerShell ---
//PS R:\java-work> tree /F
//...
//R:.
//└─dir1
// └─dir2
boolean renameTo (File dest)
この抽象パス名が示すファイルの名前を変更します。
final var src = new File("R:\\java-work\\src.txt");
System.out.println(src); // R:\java-work\src.txt
final var dst = new File("R:\\java-work\\dst.txt");
System.out.println(dst); // R:\java-work\dst.txt
System.out.println(src.exists()); // true
System.out.println(dst.exists()); // false
// --- PowerShell ---
//PS R:\java-work> ls -Name
//src.txt
//PS R:\java-work> cat src.txt
//abcd
System.out.println(src.renameTo(dst)); // true
System.out.println(src.exists()); // false
System.out.println(dst.exists()); // true
// --- PowerShell ---
//PS R:\java-work> ls -Name
//dst.txt
//PS R:\java-work> cat dst.txt
//abcd
boolean setExecutable (boolean executable)
この抽象パス名に所有者の実行権を設定する簡易メソッドです。
このメソッドの使用例は、canExecute() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
boolean setExecutable (boolean executable, boolean ownerOnly)
この抽象パス名に所有者または全員の実行権を設定します。
このメソッドの使用例は、canExecute() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
boolean setLastModified (long time)
この抽象パス名が示すファイルまたはディレクトリが変更された時刻を設定します。
このメソッドの使用例は、lastModified() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
boolean setReadable (boolean readable)
この抽象パス名に所有者の読取り権を設定する簡易メソッドです。
このメソッドの使用例は、canRead() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
boolean setReadable (boolean readable, boolean ownerOnly)
この抽象パス名に所有者または全員の読取り権を設定します。
このメソッドの使用例は、canRead() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
boolean setReadOnly ()
この抽象パス名が示すファイルまたはディレクトリにマークを設定し、読込みオペレーションだけが許可されるようにします。
final var file = new File("R:\\java-work\\aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt
System.out.println(file.createNewFile()); // true
// --- PowerShell ---
//PS R:\java-work> ls | Format-Table -Property Mode, Name
//
//Mode Name
//---- ----
//-a--- aaa.txt
System.out.println(file.setReadOnly()); // true
// --- PowerShell ---
//PS R:\java-work> ls | Format-Table -Property Mode, Name
//
//Mode Name
//---- ----
//-ar-- aaa.txt
boolean setWritable (boolean writable)
この抽象パス名に所有者の書込み権を設定する簡易メソッドです。
このメソッドの使用例は、canWrite() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
boolean setWritable (boolean writable, boolean ownerOnly)
この抽象パス名に所有者または全員の書込み権を設定します。
このメソッドの使用例は、canWrite() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
Path toPath ()
この抽象パスから構築されたjava.nio.file.Pathオブジェクトを返します。
final var file = new File("R:\\java-work\\aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt
final var path = file.toPath();
System.out.println(path); // R:\java-work\aaa.txt
Files.writeString(path, "abcd");
// --- PowerShell ---
//PS R:\java-work> ls -Name
//aaa.txt
//PS R:\java-work> cat aaa.txt
//abcd
String toString ()
この抽象パス名のパス名文字列を返します。
final var file = new File("aaa.txt");
final var str = file.toString();
System.out.println(str); // aaa.txt
final var dir = new File("R:\\java-work\\dir");
final var str = dir.toString();
System.out.println(str); // R:\java-work\dir
URI toURI ()
この抽象パス名を表すfile: URIを構築します。
final var file = new File("R:\\java-work\\aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt
final var uri = file.toURI();
System.out.println(uri); // file:/R:/java-work/aaa.txt
関連記事
- API 使用例