transferTo() 및 transferFrom() 메서드는 버퍼를 사용하여 스트림에서 읽는 것보다 더 효율적입니다. 기본 운영 체제에 따라 응용 프로그램 메모리에 바이트를 복사하지 않고 파일 시스템 캐시에서 파일로 직접 데이터를 전송할 수 있습니다. Java NIO는 Java에서 네트워킹 및 입력 출력 작업을 처리하는 대체 패키지입니다. Java NIO 패키지가 제공하는 주요 장점은 비차단이며 채널링 및 버퍼링 기능이 있다는 것입니다. Java IO 라이브러리를 사용할 때 바이트별로 데이터 바이트를 읽는 스트림으로 작업합니다. 그러나 Java NIO 패키지는 채널과 버퍼를 사용합니다. 버퍼링 및 채널링 기능을 통해 시스템은 중간 단계인 응용 프로그램 메모리에 바이트를 저장할 필요 없이 URL에서 의도한 파일에 직접 내용을 복사할 수 있습니다. 채널로 작업할 수 있는 기능은 성능을 향상시킵니다. 마지막으로 전체 파일을 읽기 전에 연결이 실패하면 다운로드를 다시 시작할 수 있는 방법에 대해 설명하겠습니다. 아파치 공용 IO를 사용 하 여 주어진된 URL에서 파일을 다운로드 하려면 우리는 패키지의 FileUtils 클래스가 필요 합니다. 파일을 다운로드하는 데 필요한 코드는 한 줄뿐입니다. Java 코드를 사용하여 파일을 다운로드하는 방법에는 여러 가지가 있습니다.

다음은 작업을 수행하는 방법에 대한 몇 가지 방법입니다: 아파치 조직에서 관리하는 또 다른 라이브러리는 HttpComponents 패키지입니다. 이 라이브러리는 요청 응답 메커니즘을 사용하여 지정된 URL에서 파일을 다운로드합니다. 우리가 사용할 두 번째 클래스는 버퍼드 입력 StreamReader 및 파일 출력 스트림입니다. 이러한 클래스는 각각 파일에서 읽고 쓰기에 사용됩니다. 아파치 공용 IO 라이브러리를 사용 하 여 시작 하려면, 공식 웹사이트에서 항아리 파일을 다운로드 해야 합니다. jar 파일 다운로드가 완료되면 이를 사용하려면 추가해야 합니다. Eclipse와 같은 IDE(통합 개발 환경)를 사용하는 경우 프로젝트의 빌드 경로에 파일을 추가해야 합니다. 프로젝트에 파일을 추가하려면 파일을 마우스 오른쪽 단추로 클릭하고 “빌드 path-> 빌드 경로 구성”을 탐색하여 빌드 경로 옵션을 선택한 다음 외부 아카이브 추가 옵션을 선택합니다. 성능 향상은 버퍼링에서 비롯됩니다.

read() 메서드를 사용하여 한 번에 하나씩 바이트를 읽을 때 각 메서드 호출은 기본 파일 시스템에 대한 시스템 호출을 의미합니다.