1
resposta

Hora da prática: desafios concluídos 1 a 5.

  1. Projeto contador:
package br.com.desafio_alura.contador;

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import java.util.Scanner;

@SpringBootApplication
public class ContadorApplication implements CommandLineRunner {

    public static void main(String[] args) {
        SpringApplication.run(ContadorApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        Scanner scanner = new Scanner(System.in);

        System.out.println("\nDigite um número:");
        int num = scanner.nextInt();
        System.out.println("----- Contagem -----");
        for (int i = 0; i < num; i++) {
            System.out.println(i+1);
        }
    }
}
  1. Passos para utilizar a biblioteca Gson trabalhando com o Maven:

1 - Acessamos o site do MVN Repository (mvnrepository.com); 2 - Buscamos com Gson na barra de busca; 3 - Clicamos na biblioteca Gson e em seguida, clicamos a última versão disponível; 4 - Na aba Maven, copiamos o código completo da dependência; 5 - De volta ao IDE, abrimos o pom.xml e colamos o código dentro de < dependencies >; 6 - Por último, sincronizamos a mudança no Maven.

  1. Classe tarefa:
package br.com.desafio_alura.contador;

public class Tarefa {
    private String descricao;
    private boolean concluida;
    private String pessoaResponsavel;

    public Tarefa(String descricao, boolean concluida, String pessoaResponsavel) {
        this.descricao = descricao;
        this.concluida = concluida;
        this.pessoaResponsavel = pessoaResponsavel;
    }

    public String getDescricao() {
        return descricao;
    }

    public boolean isConcluida() {
        return concluida;
    }

    public String getPessoaResponsavel() {
        return pessoaResponsavel;
    }

    @Override
    public String toString() {
        return "Tarefa{" +
                "descricao='" + descricao + '\'' +
                ", concluida=" + concluida +
                ", pessoaResponsavel='" + pessoaResponsavel + '\'' +
                '}';
    }
}
  1. Serielização de um arquivo:
package br.com.desafio_alura.contador;

import com.fasterxml.jackson.core.exc.StreamWriteException;
import com.fasterxml.jackson.databind.DatabindException;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.File;
import java.io.IOException;

public class MainTarefa {
    public static void main(String[] args) {

        Tarefa tarefa = new Tarefa("Desafio: hora da prática", true, "Leo");

        ObjectMapper mapper = new ObjectMapper();

        try {
            mapper.writeValue(new File("tarefa.json"), tarefa);
            System.out.println("Tarefa salva no arquivo tarefa.json.");
        } catch (IOException e) {
            System.out.println("Erro:" + e.getMessage());
        }
    }
}

tarefa.json

{"descricao":"Desafio: hora da prática","concluida":true,"pessoaResponsavel":"Leo"}
  1. Desserielização de um arquivo:
package br.com.desafio_alura.contador;

import com.fasterxml.jackson.core.exc.StreamWriteException;
import com.fasterxml.jackson.databind.DatabindException;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.File;
import java.io.IOException;

public class MainTarefa {
    public static void main(String[] args) {

        Tarefa tarefa = new Tarefa("Desafio: hora da prática", true, "Leo");

        ObjectMapper mapper = new ObjectMapper();

        try {
            mapper.writeValue(new File("tarefa.json"), tarefa);
            System.out.println("Tarefa salva no arquivo tarefa.json.");
        } catch (IOException e) {
            System.out.println("Erro:" + e.getMessage());
        }

        try {
            Tarefa tarefa2 = mapper.readValue(new File("tarefa.json"), Tarefa.class);
            System.out.println("\nLeitura do arquivo tarefa.json:");
            System.out.println(tarefa2);
        } catch (IOException e) {
            System.err.println("Erro: " + e.getMessage());
        }
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Oi, Leo! Como vai?

Seu projeto está muito bem estruturado e mostra domínio tanto do Spring Boot quanto da manipulação de arquivos com Jackson. A organização das classes e a separação das responsabilidades estão claras, o que facilita bastante a leitura e manutenção do código.

Uma dica interessante para o futuro é usar o método Files.exists da API NIO para verificar se o arquivo já existe antes de sobrescrevê-lo. Veja este exemplo:


import java.nio.file.Files;
import java.nio.file.Paths;

if (Files.exists(Paths.get("tarefa.json"))) {
    System.out.println("O arquivo tarefa.json já existe.");
}

Esse trecho de código verifica se o arquivo "tarefa.json" está presente no diretório atual. Isso pode ser útil para evitar sobrescritas acidentais.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!