Топ-100Работа с элементами файловой системы с помощью класса File - CodOrbits
LogoCodOrbits

Раздел: Java Core

Раздел охватывает ключевые возможности языка Java: аннотации, исключения, generics, лямбда-выражения, интерфейсы и другие базовые концепции.

Все разделы
Иконка Java Core

Работа с элементами файловой системы с помощью класса 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
мин.

Similar Articles Icon
Divider

Метод Clone и его переопределение

14
мин.

Similar Articles Icon
Divider

Метод hashCode и его переопределение

16
мин.

Similar Articles Icon