Java download arquivo

Postado em por Wolmir Cezer Garbin em Java | 79 Visualizações
Última atualização em:

Este post mostra como fazer o download de arquivos a partir de uma URL Http em Java

Todo mundo tem algo para vender, AnuncieOn.com o melhor site de anúncios grátis de todo o Brasil.

Existem algumas formas de realizar o download de arquivos em java. A primeira delas é utilizando classes nativas do Java.

Para isso utilizaremos algumas classes do Java NIO.

Neste exemplo utilizaremos a logomarca do Receitas de Código. Veja o código:

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

public class HttpUtils {

    public static void main(String[] args) {

        final String httpFile = "https://receitasdecodigo.com.br/resources/codeconference/img/favicon.png";
        final String localFile = "/home/wolmir/download.png";

        try {
            URL website = new URL(httpFile);
            ReadableByteChannel rbc = Channels.newChannel(website.openStream());
            FileOutputStream fos = new FileOutputStream(localFile);
            fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
            fos.close();
            rbc.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Note que esta é uma forma de realizar o download sem utilizar nenhuma dependência adicional ao projeto.



Usando Apache Commons IO

Pra utilizar o Apache Commons IO primeiro é necessário adicionar a dependência no projeto.

Considerando que seja um projeto maven, adicione a dependência ao pom.xml:

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency>

Agora basta utilizar o método copyURLToFile disponível na classe FileUtils do pacote org.apache.commons.io.

Seguindo o mesmo exemplo mostrado acima, alteramos o código da seguinte forma:

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.net.URL;

public class HttpUtils {

    public static void main(String[] args) throws IOException {

        final String httpFile = "https://receitasdecodigo.com.br/resources/codeconference/img/favicon.png";
        final String localFile = "/home/wolmir/download.png";

        FileUtils.copyURLToFile(new URL(httpFile), new File(localFile));
    }
}

Note que o código fica muito mais simples fazendo o uso da classe utilitário FileUtils.

Para finalizar, ainda pode passar ao método mais dois parâmetros em milissegundos, o connectionTimeout e readTimeout opcionalmente. Dependendo do tamanho do arquivo a ser baixado pode ser útil estes parâmetros.

Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


Wolmir Cezer Garbin

Wolmir Cezer Garbin


Sou formado em Desenvolvimento de Sistemas para Internet pela faculdade Mater Dei e Pós graduado em Desenvolvimento de sistemas em Java pela UTFPR. Trabalho a mais de 9 anos com desenvolvimento em Java, Android e Web utilizando as principais tecnologias do mercado. Atuo como professor na faculdade Mater Dei, programador na Garbo Software e criador do Receitas de Código.

Ver mais

FIQUE POR DENTRO

Receba as novidades todo mês em seu e-mail!

Apoiadores


Publique seu post no Receitas de Código

Agora você pode publicar seu post no Receitas de Código e compartilhar seu conhecimento com muitas pessoas!

Quero publicar