자바 웹 이미지 다운로드

공용 정적 void saveImage (문자열 imageUrl)는 IOException을 throw {URL url = 새 URL (imageUrl); 문자열 파일 이름 = url. 문자열의 확장명은 “/숫자” + 파일 이름 문자열을 입력 합니다. (받침대 이름). 는 = url입니다. 출력 스트림 os = 새 FileOutputStream (데스트 이름); 바이트 [] b = 새 바이트 [2048] int 길이; (길이 =.)}은. 닫기 ()를 입력 하는 것이 고,이에 해당 합니다. 운영 체제를 닫습니다. 클래스는이 기술을 보여 줍니다. 이미지에 대 한 URL 개체를 가져온 다음이 이미지에 대 한 입력 스트림을 가져옵니다.

FileOutputStream을 통해 파일에 출력 스트림을 만듭니다. 표준 Java 스트림 처리를 사용 하 여 입력 스트림은 while 루프를 통해 청크 단위로 판독 되 고 바이트는 출력 스트림에 기록 됩니다. 다음 코드는 디스크에 대 한 직접 링크의 이미지를 프로젝트 디렉터리로 다운로드 합니다. 리소스 사용 시도도 참고 하세요. 한 가지 차이점은 여기서 URLConnection 클래스는 다운로드가 많은 시간 동안 차단 되지 않도록 연결 시간 제한을 제어 하는 데 사용 된다는 것입니다. 범위 헤더를 사용 하는 또 다른 일반적인 방법은 다른 바이트를 설정 하 여 청크에서 파일을 다운로드 하는 것입니다 범위. 예를 들어 2KB 파일을 다운로드 하려면 0-1024 및 1024-2048 범위를 사용할 수 있습니다. 이미지를 바이트 배열로 변환 하기 위해, 우리는 Byte배열과 같은 메서드를 사용 합니다. 그 구문은 아래에 주어진-또한, 일반적으로 파일을 다운로드 하는 HTTP를 통해 수행 되기 때문에, 우리는 우리가 AsyncHttpClient 라이브러리를 사용 하 여이 작업을 수행 할 수 있는 방법을 보여 주었다.

다행 스럽게도 Java는 버퍼링 없이 2 개 채널 간에 직접 바이트를 전송 하는 방법을 제공 하는 NIO 패키지입니다. 이 자습서에서는 파일을 다운로드 하는 데 사용할 수 있는 몇 가지 방법을 살펴보겠습니다. 우리가 웹 서버에 이미지를 업로드 하는 방법을 살펴 보자. 서버에 보내기 위해 BufferedImage를 바이트 배열로 변환 합니다. Java IO의 기본 사용법에서 NIO 패키지에 이르는 예제와 비동기 Http 클라이언트 및 아파치 커먼즈 IO와 같은 몇 가지 공통 라이브러리에 대해 살펴보겠습니다. jsoup는 실제 HTML로 작업 하기 위한 자바 라이브러리입니다. 가장 좋은 DOM, CSS 및 jquery와 같은 메서드를 사용 하 여 데이터를 추출 하 고 조작 하는 데 매우 편리한 API를 제공 합니다. 우리는이 문서에서 우리는 자바의 URL에서 파일을 다운로드 할 수 있는 몇 가지 방법을 보았다.

위의 예제는 매우 장황 하지만 다행히 Java 7에서는 IO 작업을 처리 하기 위한 도우미 메서드를 포함 하는 Files 클래스가 있습니다. 우리는 InputStream에서 모든 바이트를 읽고 로컬 파일로 복사 하는 파일. copy () 메서드를 사용할 수 있습니다. 이제 파일의 전체 콘텐츠 크기가 있으므로 파일이 부분적으로 다운로드 되었는지 확인할 수 있습니다. 그렇다면, 우리는 디스크에 기록 된 마지막 바이트에서 다운로드를 재개: 이미지를 저장 하 고 당신이 그것의 URL을 알고 있는 경우: 다음, 우리는 HTTP GET 요청을 생성 하 고 등록 하는 Asynccomplete 다운로드 한 콘텐츠를 처리 하는 핸들러 핸들러 : 가장 먼저 알아야 할 것은 HTTP HEAD 메서드를 사용 하 여 실제로 다운로드 하지 않고 주어진 URL에서 파일의 크기를 읽을 수 있다는 것입니다 .이 예제에서는 웹 사이트에서 이미지를 다운로드 하기 위해 HTML 파서 Jsoup를 사용 합니다. () 메서드를 재정의 했습니다. 기본 구현은 ArrayList로 수신 된 HTTP 청크를 누적 합니다. 이로 인해 대용량 파일을 다운로드 하려고 할 때 메모리 사용량이 높거나 OutOfMemory 예외가 발생할 수 있습니다.

마지막으로, 전체 파일을 읽기 전에 연결이 실패 하면 다운로드를 재개 하는 방법에 대해 살펴보겠습니다. 인터넷 연결이 때때로 실패 하는 것을 고려할 때, 우리는 바이트 0에서 다시 파일을 다운로드 하는 대신 다운로드를 재개 할 수 있는 것이 유용 합니다. 이 코드는 URL을 통해 직접 액세스할 수 있는 이미지를 다운로드 합니다.

Love to Travel, Eat & Sleep! Dream on Trip Bangladesh!!

(32)

মন্তব্য

মন্তব্য