Java URL에서 파일 다운로드

오늘은 자바에서 URL에서 파일을 다운로드하는 방법을 배우겠습니다. 자바 프로그램에서 파일을 다운로드하려면 java.net.URLopenStream() 메소드를 사용할 수 있습니다. URL의 오픈 스트림에서 데이터를 읽고 파일로 저장하기 위해 Java NIO 채널이나 Java IO 입력 스트림을 사용할 수 있습니다.

Java에서 URL에서 파일 다운로드

여기에 간단한 자바 URL에서 파일을 다운로드하는 예제 프로그램이 있습니다. 이 프로그램은 자바에서 URL에서 파일을 다운로드하는 두 가지 방법을 보여줍니다. JavaDownloadFileFromURL.java

package com.journaldev.files;

import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;

public class JavaDownloadFileFromURL {

    public static void main(String[] args) {
        String url = "https://www.journaldev.com/sitemap.xml";
        
        try {
            downloadUsingNIO(url, "/Users/pankaj/sitemap.xml");
            
            downloadUsingStream(url, "/Users/pankaj/sitemap_stream.xml");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static void downloadUsingStream(String urlStr, String file) throws IOException{
        URL url = new URL(urlStr);
        BufferedInputStream bis = new BufferedInputStream(url.openStream());
        FileOutputStream fis = new FileOutputStream(file);
        byte[] buffer = new byte[1024];
        int count=0;
        while((count = bis.read(buffer,0,1024)) != -1)
        {
            fis.write(buffer, 0, count);
        }
        fis.close();
        bis.close();
    }

    private static void downloadUsingNIO(String urlStr, String file) throws IOException {
        URL url = new URL(urlStr);
        ReadableByteChannel rbc = Channels.newChannel(url.openStream());
        FileOutputStream fos = new FileOutputStream(file);
        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
        fos.close();
        rbc.close();
    }

}

downloadUsingStream: 이 자바에서 URL에서 파일을 다운로드하는 메소드에서는 URL의 openStream 메소드를 사용하여 입력 스트림을 생성합니다. 그런 다음 파일 출력 스트림을 사용하여 입력 스트림에서 데이터를 읽고 파일에 쓰고 있습니다. downloadUsingNIO: 이 URL에서 파일을 다운로드하는 메소드에서는 URL 스트림 데이터에서 바이트 채널을 생성합니다. 그런 다음 파일 출력 스트림을 사용하여 파일에 기록합니다. 이 두 가지 방법 중 어느 것을 사용할지는 자바 프로그램에서 파일을 URL에서 다운로드하는 데 사용할 수 있습니다. 성능을 찾고 있다면 두 가지 방법을 사용하여 분석하고 필요한 것을 확인하십시오.

더 많은 Java IO 예제는 우리의 GitHub 저장소에서 확인할 수 있습니다.

Source:
https://www.digitalocean.com/community/tutorials/java-download-file-url