Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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);
}

Comment on lines +35 to +41
Copy link
Collaborator

@isdrchagas isdrchagas Nov 1, 2023

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

public static void main(String[] args) {
String pathArquivoCsv = "Exception Handling/ManipulacaoCSV/com.manipulacao-csv.java/dados.csv";
List<Pessoa> pessoas = PreencheLista(pathArquivoCsv);
Copy link
Collaborator

Choose a reason for hiding this comment

The 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");
}
}
}
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);
}
}

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.
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
1 change: 1 addition & 0 deletions java-trainning.iml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/Design Patterns/Strategy Pattern/com.strategy.java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Exception Handling/ManipulacaoCSV/com.manipulacao-csv.java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/Design Patterns/Builder/com.builder.java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Exception Handling/Encadeamento de Excecoes/com.encadeamento.excecoes.java" isTestSource="false" />
</content>
Expand Down