Principal:
import java.util.InputMismatchException;
import java.util.Scanner;
public class Principal {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int cep = 0;
try {
System.out.print("Digite seu CEP: ");
cep = sc.nextInt();
ViaCEP viaCep = new ViaCEP(cep);
viaCep.procurar();
viaCep.mostrarJson();
} catch (InputMismatchException e) {
System.err.println("Erro: CEP inválido. Digite apenas números.");
}
sc.close();
}
}
ViaCep:
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonSyntaxException;
import java.io.BufferedReader;
import java.io.FileReader;
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;
public class ViaCep {
private static final String BASE_URL = "https://viacep.com.br/ws/";
private final int cep;
private final Gson gson;
public ViaCep(int cep) {
this.cep = cep;
this.gson = new GsonBuilder().setPrettyPrinting().create();
}
public void procurar() {
String url = BASE_URL + cep + "/json/";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.build();
try {
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
Object jsonObject = gson.fromJson(response.body(), Object.class);
try (FileWriter fileWriter = new FileWriter("Cep.json")) {
fileWriter.write(gson.toJson(jsonObject));
System.out.println("Dados salvos em Cep.json.");
}
} catch (Exception e) {
System.err.println("Erro ao consultar o CEP: " + e.getMessage());
Thread.currentThread().interrupt();
}
}
public void mostrarJson() {
try (BufferedReader reader = new BufferedReader(new FileReader("Cep.json"))) {
StringBuilder conteudo = new StringBuilder();
String linha;
while ((linha = reader.readLine()) != null) {
conteudo.append(linha);
}
Object jsonObject = gson.fromJson(conteudo.toString(), Object.class);
String jsonFormatado = gson.toJson(jsonObject);
System.out.println("Conteúdo do Cep.json:");
System.out.println(jsonFormatado);
} catch (IOException e) {
System.err.println("Erro ao ler o arquivo Cep.json: " + e.getMessage());
}
}
}