Java에서 파일 복사

Haider Ali 2023년10월12일
  1. Java에서 파일 복사 시 예외 처리
  2. Java에서 파일 복사 예제 코드
Java에서 파일 복사

이 기사에서는 한 위치에서 다른 위치로 파일을 복사하는 방법을 소개합니다. Java 언어에는 한 파일을 다른 디렉토리로 이동할 수 있는 라이브러리가 있습니다. 좀 더 자세히 살펴보겠습니다.

Java 코드를 통해 파일을 복사하려면 소스 및 대상 경로를 두 개의 다른 문자열에 저장해야 합니다. 나중에 소스 경로를 통해 원하는 파일을 캡처하고 대상 위치에 대한 복사본을 만듭니다. 다음 코드가 작동하려면 이 라이브러리를 추가해야 합니다.

import static java.nio.file.StandardCopyOption.*;

다음은 처리해야 하는 몇 가지 예외입니다.

Java에서 파일 복사 시 예외 처리

다음은 유용할 수 있는 세 가지 예외 처리 키워드입니다.

  • 파일이 이미 대상 위치(동일한 이름)에 있는 상황이 발생하면 REPLACE_EXISTING을 사용해야 합니다. 이것은 이미 존재하는 파일을 대체합니다.
  • COPY_ATTRIBUTES, 이 보존된 키워드는 소스 파일과 연결된 속성을 복사합니다.
  • 심볼릭 링크가 따라오는 것을 원하지 않는 경우, 즉 대상 링크를 복사하지 않으려는 경우 NOFOLLOW_LINKS를 사용할 수 있습니다.

Java에서 파일 복사 예제 코드

import static java.nio.file.StandardCopyOption.*;

import java.io.*;
import java.nio.file.Files;
public class Main {
  public static void main(String[] args) {
    String sourcePath = "E:\\source location\\delftstack.txt"; // source file path
    String destinationPath = "E:\\destination location\\"; // destination file path
    File sourceFile = new File(sourcePath); // Creating A Source File
    File destinationFile = new File(
        destinationPath + sourceFile.getName()); // Creating A Destination File. Name stays the same
                                                 // this way, referring to getName()
    try {
      Files.copy(sourceFile.toPath(), destinationFile.toPath(), REPLACE_EXISTING);
      // Static Methods To Copy Copy source path to destination path
    } catch (Exception e) {
      System.out.println(e); // printing in case of error.
    }
  }
}

위의 코드 예제에서는 보시다시피 라이브러리가 추가되었습니다. 소스 경로를 복사하여 sourcepath 문자열 안에 저장하고 대상 위치에서도 동일한 작업을 수행했습니다.

나중에 소스 파일(파일 객체)을 생성하여 소스 경로의 문자열에 전달했습니다. 이제 우리는 일반적으로 파일을 복사하여 붙여넣지만 이름은 동일하게 유지된다는 것을 알고 있습니다. 이를 위해 소스 파일과 함께 getName()을 사용합니다.

Files.copy(source, target, REPLACE_EXISTING);를 사용하여 명령을 실행하고 값을 전달하면 위의 코드 예제에서 Java로 텍스트 파일을 복사했습니다.

작가: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

관련 문장 - Java File