Java에서 파일을 복사하는 방법은 무엇입니까? 예시

안녕하세요 여러분, 저는 Java로 오랫동안 프로그래밍을 해왔고 여러분은 믿지 못하겠지만 Java 7까지는 Java API에 파일 복사 방법이 없었습니다. 당시 우리의 옵션은 FileInputStream을 사용하여 직접 작성하는 것이었습니다. 하나에서 다른 것으로 바이트를 복사하는 FileOutputStream 및 버퍼 - 또는 *FileChannel.transferTo() * 방법을 사용하거나 그 당시와 오늘날에도 생명을 구한 Apache Commons의 FileUtils를 사용하십시오.

JDK는 이제 발전했으며 한 디렉토리에서 다른 디렉토리로 파일을 복사할 수 있는 적절한 API가 있습니다. 이 기사에서는 한 디렉토리에서 다른 디렉토리로 파일을 복사하기 위한 Java 이전 코드와 이 작업을 훨씬 쉽게 만드는 Java 7 코드를 모두 보여줍니다.


1. Java 7 이전의 디렉토리에서 다른 디렉토리로 파일 복사



종속성: Apache Commons IO

1. FileUtils.copyFile(파일 소스, 파일 대상)



이 방법은 파일 타임스탬프를 보존하는 새 위치에 파일을 복사합니다.

이 메서드는 지정된 소스 파일의 내용을 지정된 대상 파일에 복사합니다. 대상이 있는 디렉토리file is created if it does not exis t. 대상 파일이 존재하는 경우 이 메서드는 파일을 덮어씁니다.

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
/*** Java program to copy a file from one directory to another e.g. from src to dest
 ** @author Javin*/
public class FileCopyDemo {
    public static void main(String args[]) { 
        // Using Apache Commons FileUtils class
        File srcFile = new File("bin/HelloWorld.class");
        File destFile = new File("target/HelloWorld.class");
        try {
            FileUtils.copyFile(srcFile, destFile);
            System.out.println("File successfully copied in Java");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Output: System.out.println("File successfully copied in Java");


1.2 타임스탬프를 보존하는 디렉토리에 파일 복사



이 메소드는 지정된 소스 파일의 내용을 지정된 대상 디렉토리에 있는 동일한 이름의 파일에 복사합니다. 목적지directory is created if it does not exis t. 대상 파일이 존재하는 경우 이 메서드는 파일을 덮어씁니다.

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
/*** Java program to copy a file from one directory to another like from src to dest
 ** @author Javin Paul*/
public class Testing {
    public static void main(String args[]) { 
        // Using Apache Commons FileUtils class
        File srcFile = new File("bin/HelloWorld.class");
        File destDir = new File("target");
        try {
            FileUtils.copyFileToDirectory(srcFile, destDir);
            System.out.println("File successfully copied to destination directory in Java");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Output: File successfully copied to destination directory in Java




2. Java 7 NIO 2 API를 사용하여 한 디렉토리에서 다른 디렉토리로 파일 복사



Java 7에는 java에서 파일을 복사하는 표준 방법이 있습니다.

파일.복사.



고성능을 위해 O/S 기본 I/O와 통합됩니다.

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import static java.nio.file.StandardCopyOption.*;
import static java.nio.file.LinkOption.*; /*** Java program to copy file using Java 7 Files.copy() method** @author Javin Paul*/
public class FileCopyDemo {
    public static void main(String args[]) {
        try {
            Path bytes = Files.copy(new Java.io.File("bin/HelloWorld.class").toPath(), new java.io.File("target/HelloWorld.class").toPath(), REPLACE_EXISTING, COPY_ATTRIBUTES, NOFOLLOW_LINKS);
            System.out.println("File successfully copied using Java 7 way");
        } catch (IOException e) {
            // TODO Auto-generated catch blocke.printStackTrace();
        }
    }
}


FileInputStream FileOuputStream 을 사용하여 코드를 작성하여 Java에서 파일을 복사할 수도 있지만 Java 7이 설치되어 있는 경우 필수 사항은 아닙니다.

또는 Apache commons IO FileUtils 클래스도 편리합니다. 고속 파일 복사 및 전송을 위해 java.nio 및 FileChannel 클래스를 활용할 수도 있지만 Windows에 버그가 있어 64GB 이상의 채널 데이터를 전송할 수 없다는 점에 유의하십시오. transferFrom 관련 Windows 버그가 64MB보다 큰 스트림을 한 조각으로 복사할 수 없습니까?

좋아할만한 다른 Java 프로그래밍 기사:
다른 Java 및 프로그래밍 기사를 읽고 싶을 수도 있습니다.
  • The Java Developer RoadMap
  • 5 Free Spring Framework Courses for Java Developers
  • Top 5 Courses to Learn Microservices with Spring Boot
  • 10 Courses to learn RESTful Web Service in Java
  • Top 5 Courses to learn Spring in Depth
  • 5 Essential Frameworks Java Developer should learn
  • 5 Online Courses to learn Core Java for Free
  • Top 5 Java design patterns courses for experienced Java devs
  • Top 7 Courses to learn Microservices in Java
  • 10 Courses to learn Spring Security and OAuth2
  • 10 courses for Programming/Coding Job Interviews
  • 10 Advanced Spring Boot Courses for Java developers
  • Top 5 Courses to learn Spring Cloud for Beginners
  • 5 Courses to learn Shell Scripting in Linux
  • 10 Free Spring Boot Tutorials and Courses for Java Devs

  • 지금까지 이 글을 읽어주셔서 감사합니다. 이 Java 자습서가 마음에 들면 친구 및 동료와 공유하십시오. 질문이나 의견이 있으시면 메모를 남겨주세요.

    P. S. - Java 세계를 처음 접하고 처음부터 Java를 배울 수 있는 무료 과정을 찾고 있다면 Medium에서 my favorite free Java courses을 살펴볼 수도 있습니다. 온라인에서 Java를 배울 수 있는 최고의 무료 Java 교육 과정이 있습니다.

    좋은 웹페이지 즐겨찾기