Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

Files.copy()

Копирует файл. По умолчанию не перезаписывает существующий файл.

Доступно с: Java 7

Синтаксис

public static Path copy(Path source, Path target, CopyOption... options)

Параметры

ПараметрТипОписание
sourcePathЧто копировать.
targetPathПуть к копии, включая имя файла.
optionsCopyOption...Необязательно: REPLACE_EXISTING, COPY_ATTRIBUTES.

Возвращаемое значение

PathПуть к копии.

Примеры

Резервная копия файла; исходный файл остаётся на месте:

void main() throws IOException {
    Path dir = Files.createTempDirectory("demo");
    Path source = Files.writeString(dir.resolve("notes.txt"), "Buy milk");
 
    Path copy = Files.copy(source, dir.resolve("notes-backup.txt"));
    IO.println(Files.readString(copy));
    IO.println(Files.exists(source));
}

Результат:

Buy milk
true

Перезапись существующего файла требует REPLACE_EXISTING:

void main() throws IOException {
    Path dir = Files.createTempDirectory("demo");
    Path a = Files.writeString(dir.resolve("a.txt"), "new");
    Path b = Files.writeString(dir.resolve("b.txt"), "old");
 
    Files.copy(a, b, StandardCopyOption.REPLACE_EXISTING);
    IO.println(Files.readString(b));
}

Результат:

new

Примечания

Без REPLACE_EXISTING копирование поверх существующего файла бросает FileAlreadyExistsException. Папка копируется без содержимого — для копирования дерева обойдите его через Files.walk(). Есть перегрузки для потоков: Files.copy(inputStream, path) сохраняет данные в файл, Files.copy(path, outputStream) отправляет файл в поток.

См. также

  • Files.move() — Перемещает или переименовывает файл или папку.
  • Files.delete() — Удаляет файл или пустую папку. Вариант deleteIfExists() не бросает исключение, если файла нет.
  • Files.exists() — Проверяет, существует ли файл или папка. Рядом — isDirectory(), isRegularFile(), size().
  • Path.of() — Создаёт объект Path — путь к файлу или папке.

В учебнике

  • Файлы и пути — Работа с файловой системой в Java — Path, Files.exists, создание папок и файлов, размер, копирование, перемещение, удаление и список файлов.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.