-
Notifications
You must be signed in to change notification settings - Fork 24
#35 Exception Handling - Manipulação de Arquivos CSV #50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
fran-olv
wants to merge
14
commits into
devs-javagirl:main
Choose a base branch
from
fran-olv:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
d1ebb73
criação do arquivo dados.csv com as informacoes das pessoas
fran-olv 864abb1
criacao da classe pessoa
fran-olv e2399ba
Anjuste para que o os arquivos java fossem reconhecidos como classes …
fran-olv 14ecdc4
Alterando o lugar que o arquivo dados.csv ficou localizado
fran-olv 2ed930d
criação da classe pessoa e da classe lista de pessoas que contem as r…
fran-olv 1cbbea7
Merge pull request #1 from fran-olv/exception-handling-manipulacao-csv
fran-olv 0694a0b
Merge branch 'devs-javagirl:main' into main
fran-olv 2cbeddd
sugestao para utilizar collection
fran-olv 05992c9
sugestão para utilizar forEach
fran-olv f7c88cb
Sugestão de trocar o nome do metodo
fran-olv 215806c
Merge branch 'main' into main
fran-olv 1d43381
trocando o lugar que inicializa a lista
fran-olv f7479b1
criação do README.md
fran-olv a1131b3
Merge branch 'main' into main
fran-olv File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
52 changes: 52 additions & 0 deletions
52
Exception Handling/ManipulacaoCSV/com.manipulacao-csv.java/ListaPessoas.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| import java.io.BufferedReader; | ||
| import java.io.FileReader; | ||
| import java.io.IOException; | ||
| import java.util.ArrayList; | ||
| import java.util.List; | ||
|
|
||
|
|
||
| public class ListaPessoas { | ||
|
|
||
| public static List<Pessoa> lerCsvEConverteParaPessoas(String arquivoCSV) { | ||
| List<Pessoa> pessoasList = new ArrayList<>();; | ||
| try (BufferedReader br = new BufferedReader(new FileReader(arquivoCSV))) { | ||
| String linha; | ||
| boolean primeiraLinha = true; | ||
| while ((linha = br.readLine()) != null) { | ||
| if (primeiraLinha) { | ||
| primeiraLinha = false; | ||
| continue; // Ignora o cabeçalho | ||
| } | ||
| String[] campos = linha.split(","); | ||
| if (campos.length == 3) { | ||
| String nome = campos[0].trim(); | ||
| int idade = Integer.parseInt(campos[1].trim()); | ||
| String email = campos[2].trim(); | ||
| Pessoa pessoa = new Pessoa(nome, idade, email); | ||
| pessoasList.add(pessoa); | ||
| } | ||
| } | ||
| } catch (IOException e) { | ||
| System.out.println("Erro ao ler o arquivo: " + e.getMessage()); | ||
| } | ||
| return pessoasList; | ||
| } | ||
|
|
||
| public static double calcularMediaIdade(List<Pessoa> pessoaList){ | ||
| return pessoas.stream() | ||
| .mapToDouble(Pessoa::getIdade) | ||
| .average() | ||
| .orElse(0.0); | ||
| } | ||
|
|
||
| public static void main(String[] args) { | ||
| String pathArquivoCsv = "Exception Handling/ManipulacaoCSV/com.manipulacao-csv.java/dados.csv"; | ||
| List<Pessoa> pessoas = PreencheLista(pathArquivoCsv); | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. mesma coisa aqui, como mudou o nome do metodo, o PreencheLista não existe mais |
||
| if(!pessoas.isEmpty()) { | ||
| pessoas.forEach(System.out::println); | ||
| System.out.println("Média de idade das pessoas: "+ calcularMediaIdade(pessoas)); | ||
| } else { | ||
| System.out.println("Arquivo está vazio"); | ||
| } | ||
| } | ||
| } | ||
40 changes: 40 additions & 0 deletions
40
Exception Handling/ManipulacaoCSV/com.manipulacao-csv.java/Pessoa.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
|
|
||
| public class Pessoa{ | ||
| private String nome; | ||
| private int idade; | ||
| private String email; | ||
|
|
||
| public Pessoa(String nome, int idade, String email) { | ||
| this.nome = nome; | ||
| this.idade = idade; | ||
| this.email = email; | ||
| } | ||
|
|
||
| public String getNome() { | ||
| return nome; | ||
| } | ||
|
|
||
| public int getIdade() { | ||
| return idade; | ||
| } | ||
|
|
||
| public String getEmail() { | ||
| return email; | ||
| } | ||
|
|
||
| @Override | ||
| public java.lang.String toString() { | ||
| return "Pessoa{" + | ||
| "nome='" + nome + '\'' + | ||
| ", idade=" + idade + | ||
| ", email='" + email + '\'' + | ||
| '}'; | ||
| } | ||
|
|
||
| public static void main(String[] args) { | ||
| Pessoa pessoa1 = new Pessoa("Fran", 28, "fran@email.com"); | ||
|
|
||
| System.out.println(pessoa1); | ||
| } | ||
| } | ||
|
|
45 changes: 45 additions & 0 deletions
45
Exception Handling/ManipulacaoCSV/com.manipulacao-csv.java/README.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| # Programa para Leitura e Cálculo da Média de Idade a partir de um arquivo CSV | ||
|
|
||
| Este é um programa Java que tem como objetivo ler dados de um arquivo CSV chamado "dados.csv", onde cada linha do arquivo representa informações de uma pessoa, contendo os campos: Nome, Idade e Email. O programa realiza as seguintes tarefas: | ||
|
|
||
| 1. **Ler o arquivo "dados.csv"**: O programa abre o arquivo "dados.csv" e lê suas linhas. | ||
|
|
||
| 2. **Separar os campos**: Para cada linha do arquivo, o programa separa os campos Nome, Idade e Email. | ||
|
|
||
| 3. **Armazenar os registros**: Os registros lidos são armazenados em uma estrutura de dados apropriada, neste caso, uma lista de objetos da classe "Pessoa". | ||
|
|
||
| 4. **Calcular e imprimir a média de idade**: O programa calcula a média de idade das pessoas listadas e imprime o resultado no console. | ||
|
|
||
| ## Arquivos Necessários | ||
|
|
||
| Para executar o programa, você precisa dos seguintes arquivos: | ||
|
|
||
| - `ListaPessoas.java`: O código Java que realiza a leitura do arquivo CSV, cálculo da média de idade e trata exceções. | ||
| - `Pessoa.java`: A classe que define a estrutura de dados de uma pessoa. | ||
| - `dados.csv`: O arquivo CSV contendo os dados das pessoas. | ||
|
|
||
| ## Uso | ||
|
|
||
| Certifique-se de que os arquivos `ListaPessoas.java`, `Pessoa.java` e `dados.csv` estão no mesmo diretório. Para executar o programa, siga os seguintes passos: | ||
|
|
||
| 1. Compile o código Java: | ||
|
|
||
| ```shell | ||
| javac ListaPessoas.java | ||
| ``` | ||
|
|
||
| 2. Execute o programa: | ||
|
|
||
| ```shell | ||
| java ListaPessoas | ||
| ``` | ||
|
|
||
| O programa lerá o arquivo "dados.csv", calculará a média de idade das pessoas listadas e imprimirá os resultados no console. | ||
|
|
||
| Certifique-se de que os dados no arquivo "dados.csv" estão no formato correto, com cada linha contendo Nome, Idade e Email, separados por vírgulas. | ||
|
|
||
| O programa trata exceções relacionadas à leitura do arquivo e à conversão de dados. Se ocorrerem problemas ao ler o arquivo, você verá uma mensagem de erro no console, informando sobre o erro. | ||
|
|
||
| Se o arquivo "dados.csv" estiver em um diretório diferente, ajuste o caminho no código-fonte em `String pathArquivoCsv` para refletir o local correto do arquivo. | ||
|
|
||
| Lembre-se de que este programa ignora a primeira linha do arquivo CSV, que é considerada o cabeçalho. |
11 changes: 11 additions & 0 deletions
11
Exception Handling/ManipulacaoCSV/com.manipulacao-csv.java/dados.csv
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| Nome,Idade,Email | ||
| Ada Lovelace,36,ada@email.com | ||
| Grace Hopper,55,grace@email.com | ||
| Hedy Lamarr,65,hedy@email.com | ||
| Katherine Johnson,101,kath@email.com | ||
| Radia Perlman,70,radia@email.com | ||
| Shafi Goldwasser,68,shafi@email.com | ||
| Adele Goldberg,74,adele@@email.com | ||
| Rear Admiral Grace Murray Hopper,85, rear@email.com | ||
| Margaret Hamilton,85,margaret@email.com | ||
| Susan Kare,65,susan@email.com |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
aqui não está compilando porquê pessoas não existe, o nome do parametro é pessoaList