Como fazer download de um arquivo da internet com java

Bem fazer download de arquivo é bem simples, vamos utilizar a classe java.net.URL



import java.io.*;
import java.net.URL;
import java.net.URLConnection;

/**
 *
 * @author Moacir.com.br
 * 
 * Exemplo de como fazer download de um arquivo em java.
 * 
 * 
 * 
 */
public class FazDownload {


    public static void main(String[] args)  {
        String protocolo="http";
        String endereco ="moacirrf.com.br";
        String arquivo="/arquivos/JSFImmediate.zip";
        
        try {
           //cria URL
            URL url1 = new URL(protocolo,endereco,arquivo);
            //abre uma conexao na url criada àcima
           URLConnection con =  url1.openConnection();
           
           //tenta conectar.
           con.connect();
           
           //arquivo de saida
            FileOutputStream fileOut = new FileOutputStream("c:/teste/JSFImmediate.zip");
            
            int c=0;
            
           do{
             //le o byte
               c=con.getInputStream().read();
             
               //escreve o byte no arquivo saida
               fileOut.write(c);
               
   
              
           }while(c !=-1);
        
           //fecha o arquivo de saida
           fileOut.close();
           
           System.out.println("Arquivo baixado com sucesso");
        }catch(IOException e){   
                 e.printStackTrace();
        } 
         
    }
}

Segue algumas explicações.

Na linha 23 criamos o objeto URL, dentre os diversos construtores disponíveis na classe, estamos utilizando este que recebe três parâmetros, URL(protocol, host, file).

  • Primeiro-parâmetro é o protocolo, no nosso caso utilizamos o HTTP;
  • Segundo- parâmetro é o host, o endereço do servidor;
  • Terceiro-É o arquivo que você deseja acessar no servidor, poder ser um arquivo de texto, uma pagina html etc, no que no nosso caso estamos acessando o arquivo ZIPque esta dentro da pasta arquivos de modo que a url normal é http://moacirrf.com.br/arquivos/JSFImmediate.zip.

Na linha 25 criamos uma conexão com o host,usando a classe URLConnection, Não é realmente necessário utilizar esta classe para este exemplo, mas o interessante de usa-la, você pode utilizar alguma das suas sublasses como por exemplo a HttpURLConnection para configurar ou receber parâmetros específicos do protocolo HTTP, como por exemplo código do status.

Até logo pessoal;