Ae galera, Estou querendo desenvolver um aplicativo em JAVA que faz downloads de arquivos de um determinado servidor. E nesse aplicativo ao iniciar um download quero que ele divida o arquivo em 2 parte por exemplo, e baixar o arquivo e depois juntar em um único arquivo, como é feito nas ferramentas de downloads.
Basicamente, existe um cabeçalho que você pode mandar em uma requisição http para poder puxar apenas um pedaço selecionado de um arquivo e que se chama “range”. Procure por isso (só dei para você um link para a especificação).
malves_info
Valeu!
malves_info
thingol,
Esta solução funcionou para arquivos pdf. No meu caso, além do pdf eu preciso baixar arquivos .gz. Neste segundo caso
utilizando o mesmo código do pdf, ocorre algum problema, ao tentar abrir o arquivo .gz depois de juntar as duas partes
dá uma mensagem de arquivo corrompido, mesmo o arquivo possuindo o mesmo tamanho do arquivo original.
Tentei usar GZIPInputStream para ler as duas partes do arquivo que baixei, só que ao ler a segunda parte do arquivo (a que eu uso o Range pra dividir) ocorre uma exceção dizendo que o arquivo não está no formato correto.
T
thingol
Use algum programa que faça a comparação binária de dois arquivos (como o ‘fc.exe’ do Windows - fc /b ) para ver que tipo de corrupção houve no seu arquivo.
Normalmente corrupção de arquivos deve-se ao fato de usar Reader em vez de InputStream e trabalhar com Strings em vez de trabalhar diretamente com byte[].