**MAIN **
import java.util.Scanner;
public class BuscarEndereco {
public static void main(String[] args) {
Scanner ler = new Scanner(System.in);
try {
System.out.println("Olá, bem vindo!");
System.out.println("===== SISTEMA DE CONSULTA DE CEP =====");
System.out.print("Favor informe um CEP válido para consulta: ");
String cep = ler.next().replaceAll("[^0-9]", "");
if (cep.length() != 8) {
throw new IllegalArgumentException("CEP deve conter 8 numeros validos.");
}
ConsultaCep consultaCep = new ConsultaCep();
Endereco endereco = consultaCep.buscar(cep);
System.out.println("\nPara o CEP informado " + cep + ", segue o endereço:");
System.out.println(endereco);
GeradorDeArquivo gerador = new GeradorDeArquivo();
gerador.salvaJson(endereco);
} catch (Exception e) {
System.out.println("Erro: " + e.getMessage());
}
}
}
**Record **
public record Endereco(
String cep,
String logradouro,
String complemento,
String bairro,
String localidade,
String uf,
String ddd
) {
@Override
public String toString() {
return "\n==========================================\n" +
"CEP: " + cep + "\n" +
"Logradouro: " + logradouro + "\n" +
"Complemento: " + (complemento == null || complemento.isEmpty() ? "nullo" : complemento) + "\n" +
"Bairro: " + bairro + "\n" +
"Cidade: " + localidade + "\n" +
"UF: " + uf + "\n" +
"DDD: " + ddd +
"\n==========================================";
}
}
HTTP/GSON
import com.google.gson.Gson;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ConsultaCep {
private final String URL_BASE = "https://viacep.com.br/ws/";
public Endereco buscar(String cep) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(URL_BASE + cep + "/json/"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() != 200) {
throw new IllegalArgumentException("Serviço indisponível. Tente novamente mais tarde.");
}
if (response.body().contains("\"erro\"")) {
throw new IllegalArgumentException("CEP não encontrado.");
}
Gson gson = new Gson();
return gson.fromJson(response.body(), Endereco.class);
}
}
GeradorDeArquivo
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.io.FileWriter;
import java.io.IOException;
public class GeradorDeArquivo {
public void salvaJson (Endereco endereco) throws IOException {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
FileWriter escrita = new FileWriter(endereco.cep() + ".json");
escrita.write(gson.toJson(endereco));
escrita.close();
}
}