Download de arquivos

4 respostas
K

Olá,
Tenho um arquivo que contém milhares linhas como essa https://db-image-upload.s3.amazonaws.com/produtos/59584/550/1.jpg, eu preciso de salvar as imagens que estão no link em um diretório especifico como 59584.
Eu fiz isso até agora:

import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;

public class LeArquivo {

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

		Scanner scanner = new Scanner(new FileReader("/Users/karlinhos/Downloads/imagens/imagens.txt"));
		ArrayList<String> urlCompleta = new ArrayList<String>();
		CriaDiretorio criar = new CriaDiretorio();
		SalvaImagem salvar = new SalvaImagem();
		
		while (scanner.hasNext()) {
			urlCompleta.add(scanner.next());
		}
		scanner.close();
		
		criar.criarDiretorio(urlCompleta.get(0).substring(50, 55));
		
		salvar.salvaImagem("/Users/karlinhos/Downloads/imagens/".concat(urlCompleta.get(0).substring(50, 55)), urlCompleta.get(0));
		
		for (int j = 1; j < urlCompleta.size(); j++) {
			
			if(urlCompleta.get(j).substring(50, 55).equals(urlCompleta.get(j-1).substring(50, 55))){
				salvar.salvaImagem("/Users/karlinhos/Downloads/imagens/".concat(urlCompleta.get(j).substring(50, 55)), urlCompleta.get(j));
			}else{
				criar.criarDiretorio(urlCompleta.get(j).substring(50, 55));
				
				salvar.salvaImagem("/Users/karlinhos/Downloads/imagens/".concat(urlCompleta.get(j).substring(50, 55)), urlCompleta.get(j));
			}
		}
	}
}

import java.io.File;

public class CriaDiretorio {
	public void criarDiretorio(String nomeDiretorio) {
        try {
            File diretorio = new File("/Users/karlinhos/Downloads/imagens/".concat(nomeDiretorio));
            diretorio.mkdir();
        } catch (Exception ex) {
            System.out.println("Erro ao criar o diretorio: " + ex);
        }
    }
}

import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.io.IOException;

public class SalvaImagem {

	public void salvaImagem(String destino, String urlArquivo)throws IOException {

		URL url = new URL(urlArquivo);
		InputStream is = url.openStream();
		FileOutputStream fos = new FileOutputStream(urlArquivo);

		int bytes = 0;

		try {
			while ((bytes = is.read()) != -1) {
				fos.write(bytes);
			}
			is.close();
			fos.close();
			
		} catch (Exception e) {
		
			System.out.println("Erro ao salvar a imagem: " + e);
		}		
	}
}

4 Respostas

javaflex

Especifique pontualmente qual é a sua dúvida pra alguém conseguir te ajudar.

peczenyj

vc precisa fazer isso com java?

não pode usar o wget ?

K

Como salvar as imagens com o nome certo dentro do diretorio correspondente. Do jeito que está, consigo criar o diretorio, mais na hora de salvar a imagem está salvando fora do diretorio e com o nome do diretorio.

K

Nao precisa ser em java, pode ser em qualquel linguagem. Estou tentando em fazer em shellscritp, mais tbem nao estou conseguindo.

Criado 11 de outubro de 2016
Ultima resposta 13 de out. de 2016
Respostas 4
Participantes 3