import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Scanner;
public class ConsultandoCEP {
public static void main(String[] args) {
Scanner leitura = new Scanner(System.in);
String consulta = "";
Gson gson = new GsonBuilder()
.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
.setPrettyPrinting()
.create();
while (!consulta.equalsIgnoreCase("sair")) {
System.out.println("Digite o CEP que deseja consultar ou digite 'sair' para encerrar: ");
consulta = leitura.nextLine();
if (consulta.equalsIgnoreCase("sair")) {
System.out.println("Encerrando o programa...");
break;
}
String url = "https://viacep.com.br/ws/" + consulta + "/json/";
try {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
String json = response.body();
Localidade minhaLocalidade = gson.fromJson(json, Localidade.class);
System.out.println("Localidade: " + minhaLocalidade);
BufferedWriter escrita = new BufferedWriter(new FileWriter("Cep.txt", true));
escrita.write(minhaLocalidade.toString());
escrita.newLine();
escrita.close();
System.out.println("Localidade salva no arquivo.");
} catch (IOException | InterruptedException e) {
System.out.println("Erro ao consultar o CEP: " + e.getMessage());
}
}
leitura.close();
System.out.println("Programa finalizado.");
}
}
public class Localidade {
private String cep;
private String logradouro;
private String complemento;
private String bairro;
private String localidade;
private String uf;
private String ibge;
private String gia;
private String ddd;
private String siafi;
@Override
public String toString() {
return "CEP: " + cep +
", Logradouro: " + logradouro +
", Bairro: " + bairro +
", Cidade: " + localidade +
", UF: " + uf;
}
// Getters e Setters (opcional, dependendo do uso futuro)
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; }
public String getGia() { return gia; }
public String getDdd() { return ddd; }
public String getSiafi() { return siafi; }
}
Saídas esperadas
Digite o CEP que deseja consultar ou digite 'sair' para encerrar: Localidade: CEP: 01001-000, Logradouro: Praça da Sé, Bairro: Sé, Cidade: São Paulo, UF: SP Localidade salva no arquivo. Digite o CEP que deseja consultar ou digite 'sair' para encerrar:
Conteúdo do arquivo Cep.txt após execução:
CEP: 01001-000, Logradouro: Praça da Sé, Bairro: Sé, Cidade: São Paulo, UF: SP
Se o usuário digitar Cep inválido:
Digite o CEP que deseja consultar ou digite 'sair' para encerrar: 00000-000