Работа с элементами файловой системы с помощью класса File
Last updated: 5 мая 2025 г.File
– класс для работы с элементами файловой системы. С помощью различных методов этого класса можно получить информацию о переданном в конструктор объекта этого класса элементе файловой системы.
Например:
getPath()
– вернуть путь переданного элемента,getName()
– вернуть имя переданного элемента,isDirectory()
– является ли директорией.
Пример программы:
1import java.io.*;
2import java.util.*;
3
4class FileExample {
5 public static void main(String[] args) {
6 // Для примера выведем полный путь к файлу person.txt
7 // в текущей директории с помощью метода getAbsolutePath.
8 File file = new File("person.txt");
9 System.out.println(file.getAbsolutePath());
10
11 // или например проверим является ли переданное
12 // в конструктор директорией с помощью метода isDirectory.
13 // Вернет true, так как InputOutputStreams
14 // является директорией.
15 File directory = new File(
16 "C:/Users/User/Desktop/Java/JavaExamples/InputOutputStreams"
17 );
18 System.out.println(directory.isDirectory());
19 }
20}
Вывод:

Как видим, вернулся абсолютный путь файла person.txt
и то, что InputOutputStreams
является директорией.
Также есть много других полезных методов для создания, удаления или переименования файла или директории, проверки готов ли файл для записи, получить размер файла.
Все эти методы, конечно, приводить не будем, так как они очень простые.
Далее разберем некоторые чуть более сложные и полезные.
Метод listFiles.
С помощью метода listFiles
можем получить все файлы в директории и поместить их в массив File[]
. Благодаря чему можем пройтись по всем файлам с помощью цикла и выполнить какие-то действия с каждым из них.
Пример программы:
1import java.io.*;
2import java.util.*;
3
4class FileExample {
5 public static void main(String[] args) {
6 File directory = new File(
7 "C:/Users/User/Desktop/Java/JavaExamples/InputOutputStreams");
8 System.out.println(directory.isDirectory());
9
10 // Получим все файлы в директории InputOutputStreams
11 File[] files = directory.listFiles();
12 // Каждый элемент массива files — это один файл из InputOutputStreams.
13 for (File f : files) {
14 // Выведем имена каждого файла в директории InputOutputStreams
15 System.out.println(f.getName());
16 }
17 }
18}
Вывод:

В консоль вывелись имена всех файлов в папке InputOutputStreams.
Класс FileFilter.
FileFilter
предназначен для проверки попадает ли объект File
под некоторое условие.
Созданный объект FileFileter обычно передается в метод listFiles для фильтрации файлов в деректории.
Пример программы:
1import java.io.*;
2import java.util.*;
3
4class FileExample{
5 public static void main(String[] args) {
6 File directory = new File("C:/Users/User/Desktop/Java/JavaExamples/InputOutputStreams");
7
8 // Нужно переопределить файл accept, который
9 // будет применяться к каждому файлу, который будет
10 // выбираться из директории с помощью listFiles
11 FileFilter ff = new FileFilter() {
12 // Анонимным классом переопределяем accept
13 public boolean accept(File file) {
14 // Если файл в директории заканчивается на .txt
15 if (file.getName().endsWith(".txt")) {
16 // Возвращаем true
17 return true;
18 }
19 // Иначе false
20 return false;
21 }
22 };
23
24 // Метод listFiles(FileFilter filter) отбирает не все
25 // файлы данного каталога, а только те, которые
26 // удовлетворяют определенному условию.
27 // Параметр filter предназначен для
28 // задания этого условия.
29 // Добавляет в массив файлов только те, accept
30 // которых вернул true
31 File[] files = directory.listFiles(ff);
32 for (File f: files) {
33 System.out.println(f.getName());
34 }
35 }
36}
Вывод:

Как видим, вывелись на консоль только имена файлов с форматом .txt
.
Следующие уроки
Object. Метод toString и его переопределение
15
мин.
Метод Clone и его переопределение
14
мин.
Метод hashCode и его переопределение
16
мин.