Копирование файлов с использованием класса Files в Java

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабе вы научитесь копировать файл в другой файл на Java. Существует несколько способов копирования файла, например, с использованием FileInputStream, FileOutputStream и класса Files. Здесь мы сосредоточимся на классе Files, который проще использовать, так как он предоставляет метод copy(), который мгновенно копирует исходный файл в целевой файл.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java(("Java")) -.-> java/ConcurrentandNetworkProgrammingGroup(["Concurrent and Network Programming"]) java/FileandIOManagementGroup -.-> java/files("Files") java/FileandIOManagementGroup -.-> java/create_write_files("Create/Write Files") java/FileandIOManagementGroup -.-> java/io("IO") java/FileandIOManagementGroup -.-> java/stream("Stream") java/FileandIOManagementGroup -.-> java/nio("NIO") java/ConcurrentandNetworkProgrammingGroup -.-> java/working("Working") subgraph Lab Skills java/files -.-> lab-117430{{"Копирование файлов с использованием класса Files в Java"}} java/create_write_files -.-> lab-117430{{"Копирование файлов с использованием класса Files в Java"}} java/io -.-> lab-117430{{"Копирование файлов с использованием класса Files в Java"}} java/stream -.-> lab-117430{{"Копирование файлов с использованием класса Files в Java"}} java/nio -.-> lab-117430{{"Копирование файлов с использованием класса Files в Java"}} java/working -.-> lab-117430{{"Копирование файлов с использованием класса Files в Java"}} end

Импортировать необходимые библиотеки

В новом Java-файле импортируйте необходимые библиотеки с использованием следующего кода:

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.File;
import java.io.FileInputStream;

Создать объект файла

Создайте объект файла, который указывает на исходный файл, который необходимо скопировать.

File source = new File("sourceFile.txt");

Создать объект целевого файла

Создайте объект целевого файла, который указывает на файл, в который вы хотите скопировать данные из исходного файла.

File destination = new File("destinationFile.txt");

Использовать класс Files для копирования данных

Используйте класс Files для копирования данных из исходного файла в целевой файл. Для этого вы можете использовать метод copy() класса Files.

Path sourcePath = Paths.get(source.getAbsolutePath());
OutputStream destinationStream = new FileOutputStream(destination);
Files.copy(sourcePath, destinationStream);

Использовать FileInputStream и FileOutputStream для копирования данных

В этом методе мы будем использовать FileInputStream и FileOutputStream для копирования данных. Используйте следующий код для чтения данных из исходного файла и записи данных с использованием метода write() класса FileOutputStream.

FileInputStream sourceStream = new FileInputStream(source);
FileOutputStream destinationStream = new FileOutputStream(destination);

byte[] buffer = new byte[1024];
int bytesRead;

while ((bytesRead = sourceStream.read(buffer)) > 0) {
    destinationStream.write(buffer, 0, bytesRead);
}

sourceStream.close();
destinationStream.close();

Скомпилировать программу

Откройте терминал и перейдите в директорию ~/project. Скомпилируйте программу с использованием следующей команды:

javac CopyFile.java

Запустить программу

Запустите программу с использованием следующей команды:

java CopyFile

Резюме

В этом практическом занятии вы узнали, как копировать данные из одного файла в другой с использованием класса Files и FileInputStream и FileOutputStream. Класс Files проще в использовании, так как он предоставляет метод copy(), который мгновенно копирует данные. Вы можете использовать FileInputStream и FileOutputStream для копирования данных, читая и записывая их вручную.