Main
package app;
public class App {
public static void main(String[] args) {
Menu menu = new Menu();
menu.exibirMenu();
System.out.println("Programa finalizado.");
}
}
Classe Menu
package app;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import model.Cep;
import service.ConsultaCepService;
import service.GeraArquivoService;
public class Menu {
private final Scanner scanner = new Scanner(System.in);
private final ConsultaCepService consultaCepService = new ConsultaCepService();
private final GeraArquivoService geraArquivoService = new GeraArquivoService();
public void exibirMenu(){
String busca;
List<Cep> ceps = new ArrayList<>();
do {
System.out.println("Para sair, digite 'sair'.");
System.out.println("Digite o CEP (somente numeros) que deseja verificar: ");
busca = scanner.nextLine();
if (busca.equalsIgnoreCase("sair"))
break;
if (busca.length() != 8) {
System.out.println("CEP inválido, digite novamente.");
} else {
try {
System.out.println("Buscando...");
Cep cep = consultaCepService.consultarCep(busca);
System.out.println(cep);
ceps.add(cep);
} catch (Exception e) {
System.out.println("Erro ao buscar CEP: " + e.getMessage());
}
}
} while (!busca.equalsIgnoreCase("sair"));
try {
geraArquivoService.gerarArquivo(ceps, "Ceps.json");
} catch (Exception e) {
System.out.println("Erro ao criar o arquivo: " + e.getMessage());
}
}
}
Classe do CEP
package model;
public class Cep {
private String cep;
private String logradouro;
private String complemento;
private String bairro;
private String localidade;
private String uf;
private String ibge;
public Cep(String cep, String logradouro, String complemento, String bairro, String localidade, String uf, String ibge) {
this.cep = cep;
this.logradouro = logradouro;
this.complemento = complemento;
this.bairro = bairro;
this.localidade = localidade;
this.uf = uf;
this.ibge = ibge;
}
public String getCep() {
return cep;
}
public String getLogradouro() {
return logradouro;
}
public String getComplemento() {
return complemento;
}
public String getBairro() {
return bairro;
}
public String getLocalidade() {
return localidade;
}
public String getUf() {
return uf;
}
public String getIbge() {
return ibge;
}
@Override
public String toString() {
return "Endereço [" + "CEP: " + cep + ", Logradouro: " + logradouro + ", Complemento: " + complemento + ", Bairro: " + bairro + ", Localidade: " + localidade + ", UF: " + uf + ", IBGE: " + ibge + "]";
}
}