1
resposta

Dica

Ao escrever o primeiro arquivo txt "filme.txt" , como a criação do File está dentro do while ele não grava todos os filmes procurados ele grava somente o último porque ele dá um new FileWriter assim resetando a lista , gravando somente o último . Tirando FileWriter escrita = new FileWriter("filmes.txt") para fora da estrutura de repetição assim como escrita.close() , o arquivo txt irá gravar todas as procuras feitas

    `        String busca = "";
    List<Title> titles = new ArrayList<>();
    Gson gson = new GsonBuilder()
            .setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
            .setPrettyPrinting()
            .create();
    FileWriter escrita = new FileWriter("filmes.txt");
    while (!busca.equalsIgnoreCase("sair")) {
        Scanner leitura = new Scanner(System.in);
        System.out.println("Digite um filme : ");
        busca= (leitura.nextLine()).replace(" ", "+");

        if(busca.equalsIgnoreCase("sair"))
        {
            break;
        }

        String endereco = "https://omdbapi.com/?t=" + busca + "&apikey=1514f43c";
        try {
            HttpClient client = java.net.http.HttpClient.newHttpClient();
            HttpRequest request = HttpRequest.newBuilder()
                    .uri(URI.create(endereco)).build();

            HttpResponse<String> response = client
                    .send(request, HttpResponse.BodyHandlers.ofString());

            String json = response.body();

            TituloOmdb tituloOmdb = gson.fromJson(json, TituloOmdb.class);

            Title meutitulo = new Title(tituloOmdb);

            escrita.write(meutitulo.toString());
            titles.add(meutitulo);

        } catch (NumberFormatException e) {
            System.out.println("Aconteceu um erro : " + e.getMessage());
        } catch (IllegalArgumentException e) {
            System.out.println("Verifique o endereço : " + e.getMessage());
        } catch (ErroDeConversaoDeAnoException e) {
            System.out.println("Exceção : " + e.getMessage());
        }

    }
    escrita.close();
    System.out.println(titles);
    FileWriter escrita2 = new FileWriter("filmes.json");
    escrita2.write(gson.toJson(titles));
    escrita.close();
    System.out.println("O programa finalizou corretamente!");`
1 resposta

Obrigada pela dica! ;)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software