Класс Files
Класс Files - это утилитарный класс из пакета
java.nio.file, который содержит только статические
методы для работы с файловой системой. Через его методы
можно создавать, читать, записывать, копировать, перемещать
и удалять файлы и директории, а также проверять их свойства:
существование, тип, размер, права доступа и время изменения.
Все методы класса Files работают с объектами типа
Path, который описывает путь к файлу или директории.
В первый параметр методов обычно передается путь Path,
во второй - дополнительные параметры, например, содержимое
для записи или опции копирования.
Класс Files не нужно создавать через new -
все его методы вызываются напрямую через имя класса.
Синтаксис
import java.nio.file.Files;
import java.nio.file.Path;
Files.methodName(path, [additionalParams])
Пример
Давайте создадим файл и запишем в него строку, а затем прочитаем ее обратно:
import java.nio.file.Files;
import java.nio.file.Path;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
Path path = Path.of("test.txt");
Files.writeString(path, "abcde");
String res = Files.readString(path);
System.out.println(res);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте проверим, существует ли файл, является ли он обычным файлом и каков его размер:
import java.nio.file.Files;
import java.nio.file.Path;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
Path path = Path.of("test.txt");
Files.writeString(path, "abcde");
System.out.println(Files.exists(path));
System.out.println(Files.isRegularFile(path));
System.out.println(Files.size(path));
}
}
Результат выполнения кода:
true
true
5
Пример
Давайте создадим директорию, скопируем в нее файл и получим список ее содержимого:
import java.nio.file.Files;
import java.nio.file.Path;
import java.io.IOException;
import java.util.List;
import java.util.stream.Stream;
public class Main
{
public static void main(String[] args) throws IOException
{
Path dir = Path.of("mydir");
Files.createDirectory(dir);
Path file = Path.of("test.txt");
Files.writeString(file, "abcde");
Path copy = dir.resolve("copy.txt");
Files.copy(file, copy);
List<String> res = Files.list(dir)
.map(p -> p.getFileName().toString())
.toList();
System.out.println(res);
}
}
Результат выполнения кода:
[copy.txt]
Пример
Давайте прочитаем все строки файла в список:
import java.nio.file.Files;
import java.nio.file.Path;
import java.io.IOException;
import java.util.List;
public class Main
{
public static void main(String[] args) throws IOException
{
Path path = Path.of("test.txt");
Files.writeString(path, "abcde\n12345");
List<String> res = Files.readAllLines(path);
System.out.println(res);
}
}
Результат выполнения кода:
[abcde, 12345]
Пример
Давайте удалим файл и проверим, что он больше не существует:
import java.nio.file.Files;
import java.nio.file.Path;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
Path path = Path.of("test.txt");
Files.writeString(path, "abcde");
Files.delete(path);
System.out.println(Files.exists(path));
}
}
Результат выполнения кода:
false
Смотрите также
-
метод
exists,
который проверяет существование файла -
метод
readString,
который читает содержимое файла в строку -
метод
writeString,
который записывает строку в файл -
метод
delete,
который удаляет файл или директорию