소개
이 랩에서는 Java 에서 파일을 다른 파일로 복사하는 방법을 배우게 됩니다. 파일을 복사하는 방법에는 FileInputStream, FileOutputStream, 그리고 Files 클래스를 사용하는 등 여러 가지가 있습니다. 여기서는 Files 클래스에 집중할 것입니다. Files 클래스는 소스 파일을 대상 파일로 즉시 복사하는 copy() 메서드를 제공하므로 사용하기가 더 쉽습니다.
이 랩에서는 Java 에서 파일을 다른 파일로 복사하는 방법을 배우게 됩니다. 파일을 복사하는 방법에는 FileInputStream, FileOutputStream, 그리고 Files 클래스를 사용하는 등 여러 가지가 있습니다. 여기서는 Files 클래스에 집중할 것입니다. Files 클래스는 소스 파일을 대상 파일로 즉시 복사하는 copy() 메서드를 제공하므로 사용하기가 더 쉽습니다.
새로운 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() 메서드를 사용할 수 있습니다.
Path sourcePath = Paths.get(source.getAbsolutePath());
OutputStream destinationStream = new FileOutputStream(destination);
Files.copy(sourcePath, destinationStream);
이 방법에서는 FileInputStream 과 FileOutputStream 을 사용하여 데이터를 복사합니다. 다음 코드를 사용하여 소스 파일에서 데이터를 읽고 FileOutputStream 의 write() 메서드를 사용하여 데이터를 씁니다.
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 을 사용하여 데이터를 수동으로 읽고 쓰는 방식으로 복사할 수 있습니다.