3
respostas

Meu projeto final do curso

Meu projeto final do curso

//package exercicios.cep;

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 BuscaCep {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Digite o CEP: ");
        String recebeCep = scanner.nextLine();

        HttpClient client = HttpClient.newHttpClient();
        String url = "https://viacep.com.br/ws/" + recebeCep + "/json/";
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(url))
                .GET()
                .build();
        
        String dadosCep = "";  // Variável declarada fora do try

        try {
            HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
            dadosCep = response.body();  // Atribui os dados à variável dadosCep

            if(dadosCep.contains("erro")) {
                System.out.println("CEP Invalido ou nao encontrado.");
                return;
            }
            System.out.println("Resposta: " + dadosCep);

        } catch (Exception e) {
            System.out.println("Erro durante a requisição: " + e.getMessage());
            return;
        }

        // Menu de opções
        int opcao = 0;
        while (opcao != 2) {
            System.out.println("1 - Gravar");
            System.out.println("2 - Sair");
            System.out.println("Deseja converter em JSON e gravar estes dados no arquivo? ");
            String entrada = scanner.nextLine();

            try {
                opcao = Integer.parseInt(entrada);
            } catch (NumberFormatException e) {
                System.out.println("Opção inválida! Digite 1 ou 2.");
                opcao = 0;  // Garantir que a opção continue sendo 0 se for inválida
            }

            if (opcao == 1) {
                // Exibe os dados do CEP
                System.out.println("Dados do CEP: " + dadosCep);
                try {
                    FileWriter escrita = new FileWriter("endereco.txt", true);
                    escrita.write(dadosCep);
                    escrita.write("\n");
                    escrita.close();
                    System.out.println("Salvo com sucesso em endereco.txt");
                } catch (IOException e) {
                    System.out.println("Ocorreu um erro ao gravar o arquivo");
                }
            }

            if (opcao != 1 && opcao != 2) {
                System.out.println("Opção inválida! Digite 1 ou 2.");
            }
        }
        scanner.close();
        System.out.println("Saindo do programa...");
    }
}

Se quiser trocar informacoes e dicas meu email: keshi.coding@gmail.com

3 respostas

Oi Victor,

Parabéns pelo projeto! 👏

Seu código está bem estruturado e funcional, abordando os conceitos do curso de forma eficaz.

Gostei da forma como você lidou com a requisição HTTP e a gravação de arquivos. 👍

Para saber mais: Documentação do Java sobre try-with-resources. Este link aborda o uso do try-with-resources para gerenciamento automático de recursos, como arquivos, em Java.

Continue praticando e explorando novas funcionalidades! 🤔

Boa Victor! Parabéns! Ficou muito massa! Aproveitando como sugestão, poderia tentar quebra-lo em métodos menores, uma sugestão, seria separar o trecho do menu, em um método a parte.

Bons estudos!

É verdade! Preciso começar a criar esse habito de separar e criar outros arquivos ao inves de focar em um unico arquivo hehehe.. obrigado pela sugestão.