Ir para o conteúdo

Exercícios sobre manipulação de arquivos

Questão 1

Desenvolva um programa para realizar o cadastro de clientes em um arquivo no formato CSV (Comma-Separated Values). Cada cliente deve ser armazenado em uma única linha do arquivo, e os campos devem ser separados pelo caractere ;.

Para cada cliente, devem ser registradas as seguintes informações:

  • Identificador único;
  • Nome completo;
  • E-mail;
  • Telefone.

Ao final da execução, o programa deve gerar um arquivo contendo todos os clientes cadastrados no seguinte formato:

1;João da Silva;joao@email.com;(47) 99999-1111
2;Maria Souza;maria@email.com;(47) 99999-2222
3;Pedro Santos;pedro@email.com;(47) 99999-3333

Utilize a API NIO do Java para realizar a escrita do arquivo.

Questão 2

Desenvolva um programa capaz de realizar a leitura de um arquivo no formato CSV contendo informações de clientes. Cada linha do arquivo representa um cliente e os campos são separados pelo caractere ;.

Cada registro do arquivo possui as seguintes informações:

  • Identificador único;
  • Nome completo;
  • E-mail;
  • Telefone.

O programa deve ler todas as linhas do arquivo, converter os dados para objetos da classe Client e armazená-los em uma coleção.

Considere que o arquivo possui o seguinte formato:

1;João da Silva;joao@email.com;(47) 99999-1111
2;Maria Souza;maria@email.com;(47) 99999-2222
3;Pedro Santos;pedro@email.com;(47) 99999-3333

Ao final da leitura, o programa deve exibir as informações dos clientes no console ou disponibilizá-las para processamento posterior pela aplicação.

Utilize a API NIO do Java para realizar a leitura do arquivo e a API de Streams para converter cada linha em um objeto Client.

Questão 3

Desenvolva um programa capaz de gerenciar as informações de clientes armazenadas em um arquivo CSV. O programa deve realizar a leitura dos dados do arquivo, permitir a atualização das informações de um cliente e persistir as alterações novamente no arquivo.

Cada linha do arquivo representa um cliente e os campos são separados pelo caractere ;.

As informações armazenadas para cada cliente são:

  • Identificador único;
  • Nome completo;
  • E-mail;
  • Telefone.

O programa deve localizar um cliente a partir de seu identificador único, atualizar uma ou mais informações e, em seguida, sobrescrever o arquivo com os dados atualizados.

Considere o seguinte conteúdo inicial para o arquivo:

1;João da Silva;joao@email.com;(47) 99999-1111
2;Maria Souza;maria@email.com;(47) 99999-2222
3;Pedro Santos;pedro@email.com;(47) 99999-3333

Após atualizar o e-mail e o telefone da cliente de identificador 2, o arquivo deverá conter:

1;João da Silva;joao@email.com;(47) 99999-1111
2;Maria Souza;maria.souza@email.com;(47) 98888-2222
3;Pedro Santos;pedro@email.com;(47) 99999-3333

Utilize a API NIO do Java para realizar a leitura e a escrita do arquivo. Após modificar os dados em memória, o programa deve regravar todo o conteúdo do arquivo com as informações atualizadas.

Questão 4

Desenvolva um programa capaz de verificar se uma determinada palavra pertence ao vocabulário da língua portuguesa. Para isso, utilize uma lista de palavras armazenada em um arquivo texto, contendo uma palavra por linha.

O programa deve solicitar ao usuário uma palavra e informar se ela foi encontrada ou não no dicionário.

A busca não deve diferenciar letras maiúsculas e minúsculas. Por exemplo, as palavras Casa, CASA e casa devem ser consideradas equivalentes.

Exemplos:

Digite uma palavra: computador
Palavra encontrada no dicionário.
Digite uma palavra: xablauzito
Palavra não encontrada no dicionário.

Utilize como base os arquivos disponibilizados pelo Instituto de Matemática e Estatística da USP, que contêm listas de palavras do português brasileiro. A versão recomendada para este exercício é o arquivo em UTF-8:

https://www.ime.usp.br/~pf/dicios/br-utf8.txt

O conjunto de arquivos disponibilizado pela USP contém centenas de milhares de palavras do português brasileiro e pode ser utilizado para validar a existência de palavras em aplicações de processamento de texto. O arquivo br-utf8.txt possui uma palavra por linha e utiliza codificação UTF-8.

Questão 5

Desenvolva um jogo de adivinhação no qual o jogador deve descobrir o nome de um país sorteado aleatoriamente pelo programa.

A lista de países deve ser armazenada em um arquivo no formato JSON. Durante a execução, o programa deve carregar os dados do arquivo, selecionar um país de forma aleatória e solicitar que o usuário tente adivinhar seu nome.

O jogador terá no máximo 3 tentativas para acertar o país sorteado.

Após cada tentativa incorreta, o programa deve informar que a resposta está errada e exibir a quantidade de tentativas restantes.

Se o jogador acertar o nome do país dentro do limite de tentativas, uma mensagem de parabéns deve ser exibida. Caso contrário, o programa deve informar que o jogador perdeu e revelar o país sorteado.

Exemplo de arquivo JSON:

[
  "Brasil",
  "Argentina",
  "Chile",
  "Canadá",
  "Japão",
  "Portugal",
  "Austrália"
]

Exemplo de execução com vitória:

Tentativa 1 de 3
Digite o nome do país: Brasil
Resposta incorreta.

Tentativa 2 de 3
Digite o nome do país: Japão

Parabéns! Você acertou o país sorteado.

Exemplo de execução com derrota:

Tentativa 1 de 3
Digite o nome do país: Brasil
Resposta incorreta.

Tentativa 2 de 3
Digite o nome do país: Argentina
Resposta incorreta.

Tentativa 3 de 3
Digite o nome do país: Chile
Resposta incorreta.

Você perdeu!
O país sorteado era: Canadá

Utilize a biblioteca Jackson para realizar a leitura do arquivo JSON e a classe Random para selecionar o país sorteado.