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);
}
}
}