자바 파일복사 예제

수치에 따르면 스트림 사본은 다른 모든 것들보다 두 배 이상 빠릅니다? Java 7 이상에서 작업하는 경우 Files 클래스 copy() 메서드를 사용하여 Java에서 파일을 복사할 수 있습니다. 파일 시스템 공급자를 사용하여 파일을 복사합니다. 그래, 나는 지금 그것을 가지고, 나는 다른 모든 복사 방법에서 여분의 비트를 놓친, 게시물을 업데이트. 정말 고마워요. 디렉터리 복사본은 얕기 때문에 디렉터리 내의 파일과 하위 디렉터리도 복사되지 않습니다. 파일 이름이나 경로를 사용할 때마다 호스트의 파일 이름 규칙이 사용된다고 가정합니다. 안녕하세요 판카즈 … 당신은 설명 할 수 있습니다 : 다른 loacation에 큰 파일 (~ 3GB .avi)를 복사하는 방법?? 예 : C에서 D까지 : 감사합니다 여기에 FileChannel을 사용하여 파일을 복사하는 데 사용할 수있는 방법입니다. 나도 결과를 가져 와서 숫자를 정렬했습니다. 스트림 복사는 Java7 파일 복사의 절반 시간밖에 걸리지 않습니다. 채널 복사가 가장 느린 것 같습니다! 당신은 당신이 뭔가를 엉망 또는 잘못 해석하지 않은 결과를 확인할 수 있습니까? 다음은 위의 프로그램의 출력입니다, 나는 하나의 방법이 자바 파일 복사 작업에 사용되는 모든 시간을 확인하기 위해 코드 위에 댓글을 달았습니다. 이것은 자바에서 파일 복사의 전통적인 방법입니다. 여기서 우리는 두 개의 파일을 만듭니다 – 소스와 대상.

그런 다음 소스에서 InputStream을 만들고 Java 복사 파일 작업을 위해 OutputStream을 사용하여 대상 파일에 씁니다. 안녕하세요 Pankaj, 그 도움이 예제주셔서 감사합니다. 파일 복사 중에 IOException이 발생할 수있는 상황을 설명해 주십시오. 이 동작은 다음 복사 옵션을 사용하여 변경할 수 있습니다. 복사(InputStream, 경로, CopyOptions…) 메서드를 사용하여 입력 스트림에서 파일로 모든 바이트를 복사할 수 있습니다. 복사(Path, OutputStream) 메서드는 파일에서 출력 스트림으로 모든 바이트를 복사하는 데 사용할 수 있습니다. Java에서 한 위치에서 다른 장소로 파일을 복사하는 것은 응용 프로그램에서 수행해야 하는 일반적인 작업입니다. 이 예제에서는 Java에서 파일을 복사하는 4 가지 방법을 나열합니다. 필요에 가장 적합한 것을 사용하십시오. 가져오기 자바.io.IOException; 가져오기 자바.nio.file.Files; 가져오기 자바.nio.file.Path; 가져오기 자바.nio.file.Paths; 퍼블릭 클래스 FileCopyTest { 공용 정적 보이드 메인(String[] args) { 경로 소스 = Paths.get(“/사용자/사과/데스크톱/test.rtf”); 경로 대상 = Paths.get(“/사용자/사과/바탕 화면/복사.rtf”); TRY { Files.copy(소스, 대상); } catch(IOException e) { e.printStackTrace(); } } 이 방법을 사용하려면 아파치 공통 IO의 항아리 파일을 다운로드하고 프로젝트에 종속성으로 포함합니다.

아파치 커먼스 IO FileUtils.copyFile (파일 srcFile, 파일 destFile)는 자바에서 파일을 복사하는 데 사용할 수 있습니다. 프로젝트에서 이미 Apache Commons IO를 사용하고 있는 경우 코드 단순성을 위해 이 IO를 사용하는 것이 좋습니다. 내부적으로는 Java NIO FileChannel을 사용하므로 다른 함수에 아직 사용하지 않는 경우이 래퍼 메서드를 피할 수 있습니다. 다행히 자바는 핵심 API를 개선했으며 NIO.2 API를 사용하여 파일을 복사하는 더 간단한 방법이 있습니다. 위의 그림을 보면 스트림 복사는 채널 복사보다 6배 빠르며 Java7 파일 복사보다 5배 빠릅니다. 비슷한 수치가 몇 번 나왔습니다. 출력에서 스트림 복사가 Java에서 파일을 복사하는 가장 좋은 방법이라는 것은 분명합니다.