2013-08-06 3 views
-2

두 파일의 차이점은 무엇이며 어떻게 사용할 것입니까?Java NIO transferTo와 Java File renameTo

+1

모든 파일 시스템에서 이동 대 사본과 동일합니다. 그것에 대해 Java와 관련된 것은 없습니다. – EJP

+0

파일을 복사 할 것인지 (원본을 유지할 것인지) 바꿀 것인지 (원본 위치 변경) 여부를 알아야합니다. –

답변

2

File.renameTo()는 파일 이름을 변경합니다. 대상 파일 이름이 다른 파일 시스템에 있으면 파일 내용을 복사 할 수 있지만 플랫폼에 따라 다릅니다.

NIO의 FileChannel.transferTo() 메소드는 실제로 FileChannel (예 : 파일)의 내용 (즉, 바이트)을 다른 위치로 복사합니다.

같은 파일 시스템에서 renameTo()를 사용하는 경우 읽기/쓰기가되지 않으므로 디렉토리 목록의 파일 이름 만 변경됩니다.

0

자바 NIO 당신은 한 채널에서 다른 채널로 직접 데이터를 전송할 수 있습니다 자바 NIO에서

1.

2 데이터는 java.nio.channels.FileChannel 클래스의 transferTo (..) 및 transferFrom (..) 메소드를 사용하여 전송할 수 있습니다.

3- 이러한 방법은 파일 시스템의 기본 최적화를 사용하므로 특정 경우에 데이터 전송 속도가 빨라집니다. 특히 대용량 파일의 경우 더욱 그렇습니다. 그러나, 구현은 파일 시스템의 특정 점에 유의하고

java.io.File의이 방법은 항상 빠른 것을

파일 .Rename 항에 거짓이 될 것입니다하지 않습니다 어떤 준비 메이크업 이동 파일을 포함 방법을 사용하지만 다음 두 가지 대안으로 해결 방법을 사용할 수 있습니다. 1 -File.renameTo(). 2 - 새 파일로 복사하고 원래 파일을 삭제하십시오.

대상 경로가 다른 파일 시스템에있는 경우 renameTo가 작동하지 않습니다. 단순히 거짓을 반환합니다.