Prévia do material em texto
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class SistemaAcademico {
private static final String ARQUIVO_LOGIN = "data/Login.csv";
private static final Scanner scanner = new Scanner(System.in);
private static final List usuarios = new ArrayList();
public static void main(String[] args) {
carregarUsuarios();
while (true) {
System.out.println("\n==== Sistema Acadêmico ====");
System.out.println("1. Login");
System.out.println("2. Alterar Senha");
System.out.println("0. Sair");
System.out.print("Escolha uma opção: ");
String opcao = scanner.nextLine();
switch (opcao) {
case "1":
if (fazerLogin()) {
menuPrincipal();
}
break;
case "2":
alterarSenha();
break;
case "0":
System.out.println("Encerrando o sistema.");
return;
default:
System.out.println("Opção inválida. Tente novamente.");
}
}
}
private static void carregarUsuarios() {
usuarios.clear();
try (BufferedReader br = new BufferedReader(new FileReader(ARQUIVO_LOGIN))) {
String linha;
while ((linha = br.readLine()) != null) {
String[] dados = linha.split(",");
if (dados.length == 2) {
usuarios.add(new Usuario(dados[0], dados[1]));
}
}
} catch (IOException e) {
System.out.println("Erro ao carregar dados de login: " + e.getMessage());
}
}
private static void salvarUsuarios() {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(ARQUIVO_LOGIN))) {
for (Usuario usuario : usuarios) {
bw.write(usuario.getLogin() + "," + usuario.getSenha());
bw.newLine();
}
} catch (IOException e) {
System.out.println("Erro ao salvar dados de login: " + e.getMessage());
}
}
private static boolean fazerLogin() {
System.out.print("Login: ");
String login = scanner.nextLine().trim();
System.out.print("Senha: ");
String senha = scanner.nextLine().trim();
for (Usuario usuario : usuarios) {
if (usuario.getLogin().equals(login) && usuario.getSenha().equals(senha)) {
System.out.println("Login realizado com sucesso.");
return true;
}
}
System.out.println("Login ou senha incorretos.");
return false;
}
private static void alterarSenha() {
System.out.print("Login: ");
String login = scanner.nextLine().trim();
System.out.print("Senha atual: ");
String senhaAtual = scanner.nextLine().trim();
for (Usuario usuario : usuarios) {
if (usuario.getLogin().equals(login) && usuario.getSenha().equals(senhaAtual)) {
System.out.print("Nova senha: ");
String novaSenha = scanner.nextLine().trim();
if (novaSenha.length() >= 4) {
usuario.setSenha(novaSenha);
salvarUsuarios();
System.out.println("Senha alterada com sucesso.");
} else {
System.out.println("Senha muito curta. Mínimo de 4 caracteres.");
}
return;
}
}
System.out.println("Login ou senha atual incorretos.");
}
private static void menuPrincipal() {
while (true) {
System.out.println("\n=== Menu Principal ===");
System.out.println("1. Consultar aluno por ID");
System.out.println("2. Listar alunos por curso");
System.out.println("3. Matricular aluno em curso existente");
System.out.println("4. Criar novo curso com novos alunos");
System.out.println("0. Sair");
System.out.print("Escolha: ");
String opcao = scanner.nextLine();
switch (opcao) {
case "1":
System.out.print("Digite o ID do aluno: ");
try {
int id = Integer.parseInt(scanner.nextLine());
ConsultaAluno.consultarAlunoPorId(id);
} catch (NumberFormatException e) {
System.out.println("ID inválido. Deve ser numérico.");
}
break;
case "2":
ListarAlunosPorCurso.listar();
break;
case "3":
MatricularAluno.matricularAluno();
break;
case "4":
CriarCurso.criar();
break;
case "0":
return;
default:
System.out.println("Opção inválida.");
}
}
}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class SistemaAcademico {
private static final String ARQUIVO_LOGIN = "data/Login.csv";
private static final Scanner scanner = new Scanner(System.in);
private static final List usuarios = new ArrayList();
public static void main(String[] args) {
carregarUsuarios();
while (true) {
System.out.println("\n==== Sistema Acadêmico ====");
System.out.println("1. Login");
System.out.println("2. Alterar Senha");
System.out.println("0. Sair");
System.out.print("Escolha uma opção: ");
String opcao = scanner.nextLine();
switch (opcao) {
case "1":
if (fazerLogin()) {
menuPrincipal();
}
break;
case "2":
alterarSenha();
break;
case "0":
System.out.println("Encerrando o sistema.");
return;
default:
System.out.println("Opção inválida. Tente novamente.");
}
}
}
private static void carregarUsuarios() {
usuarios.clear();
try (BufferedReader br = new BufferedReader(new FileReader(ARQUIVO_LOGIN))) {
String linha;
while ((linha = br.readLine()) != null) {
String[] dados = linha.split(",");
if (dados.length == 2) {
usuarios.add(new Usuario(dados[0], dados[1]));
}
}
} catch (IOException e) {
System.out.println("Erro ao carregar dados de login: " + e.getMessage());
}
}
private static void salvarUsuarios() {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(ARQUIVO_LOGIN))) {
for (Usuario usuario : usuarios) {
bw.write(usuario.getLogin() + "," + usuario.getSenha());
bw.newLine();
}
} catch (IOException e) {
System.out.println("Erro ao salvar dados de login: " + e.getMessage());
}
}
private static boolean fazerLogin() {
System.out.print("Login: ");
String login = scanner.nextLine().trim();
System.out.print("Senha: ");
String senha = scanner.nextLine().trim();
for (Usuario usuario : usuarios) {
if (usuario.getLogin().equals(login)&& usuario.getSenha().equals(senha)) {
System.out.println("Login realizado com sucesso.");
return true;
}
}
System.out.println("Login ou senha incorretos.");
return false;
}
private static void alterarSenha() {
System.out.print("Login: ");
String login = scanner.nextLine().trim();
System.out.print("Senha atual: ");
String senhaAtual = scanner.nextLine().trim();
for (Usuario usuario : usuarios) {
if (usuario.getLogin().equals(login) && usuario.getSenha().equals(senhaAtual)) {
System.out.print("Nova senha: ");
String novaSenha = scanner.nextLine().trim();
if (novaSenha.length() >= 4) {
usuario.setSenha(novaSenha);
salvarUsuarios();
System.out.println("Senha alterada com sucesso.");
} else {
System.out.println("Senha muito curta. Mínimo de 4 caracteres.");
}
return;
}
}
System.out.println("Login ou senha atual incorretos.");
}
private static void menuPrincipal() {
while (true) {
System.out.println("\n=== Menu Principal ===");
System.out.println("1. Consultar aluno por ID");
System.out.println("2. Listar alunos por curso");
System.out.println("3. Matricular aluno em curso existente");
System.out.println("4. Criar novo curso com novos alunos");
System.out.println("0. Sair");
System.out.print("Escolha: ");
String opcao = scanner.nextLine();
switch (opcao) {
case "1":
System.out.print("Digite o ID do aluno: ");
try {
int id = Integer.parseInt(scanner.nextLine());
ConsultaAluno.consultarAlunoPorId(id);
} catch (NumberFormatException e) {
System.out.println("ID inválido. Deve ser numérico.");
}
break;
case "2":
ListarAlunosPorCurso.listar();
break;
case "3":
MatricularAluno.matricularAluno();
break;
case "4":
CriarCurso.criar();
break;
case "0":
return;
default:
System.out.println("Opção inválida.");
}
}
}
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class ConsultaAluno {
//
public static void consultarAlunoPorId(int idBusca) {
String nomeAluno = buscarNomeAluno(idBusca); // buscarnomealuno é um metodo
if (nomeAluno == null) {
System.out.println("Aluno não encontrado.");
return;
}
System.out.println("Nome do Aluno: " + nomeAluno);
boolean encontrouCurso = false;
File pasta = new File("data");
File[] arquivos = pasta.listFiles();
if (arquivos != null) {
for (File arquivo : arquivos) { // : é um operador de referencia de metodo
String nomeArquivo = arquivo.getName();
if (arquivo.isFile() && nomeArquivo.endsWith(".csv") && ehArquivoDeCurso(nomeArquivo)) {
if (verificarAlunoNoCurso(arquivo, idBusca)) {
encontrouCurso = true;
}
}
}
}
if (!encontrouCurso) {
System.out.println("Aluno não está matriculado em nenhum curso.");
}
buscarInformacoesCientificas(idBusca); //metodo
}
private static boolean ehArquivoDeCurso(String nome) {
return !nome.equalsIgnoreCase("Alunos.csv") &&
!nome.equalsIgnoreCase("Login.csv") &&
!nome.equalsIgnoreCase("Cursos.csv") &&
!nome.equalsIgnoreCase("ic_art_ciet.csv");
}
private static String buscarNomeAluno(int idBusca) {
try (BufferedReader br = new BufferedReader(new FileReader("data/Alunos.csv"))) {
String linha;
while ((linha = br.readLine()) != null) {
String[] partes = linha.split(","); // separa as colunas do arquivo por virgula e confirma se tem a quantidade necessaria de informaçoes
if (partes.length >= 2) {
int id = Integer.parseInt(partes[0]);
if (id == idBusca) {
return partes[1];
}
}
}
} catch (IOException e) {
System.out.println("Erro ao ler Alunos.csv: " + e.getMessage());
}
return null;
}
private static boolean verificarAlunoNoCurso(File arquivoCurso, int idBusca) {
try (BufferedReader br = new BufferedReader(new FileReader(arquivoCurso))) {
String linha;
while ((linha = br.readLine()) != null) {
String[] partes = linha.split(",");
if (partes.length >= 1) {
int id = Integer.parseInt(partes[0].trim());
if (id == idBusca) {
double n1 = (partes.length > 1 && !partes[1].trim().isEmpty()) ? Double.parseDouble(partes[1].trim()) : 0.0;
double n2 = (partes.length > 2 && !partes[2].trim().isEmpty()) ? Double.parseDouble(partes[2].trim()) : 0.0;
double reposicao = (partes.length > 3 && !partes[3].trim().isEmpty()) ? Double.parseDouble(partes[3].trim()) : 0.0;
double exame = (partes.length > 4 && !partes[4].trim().isEmpty()) ? Double.parseDouble(partes[4].trim()) : 0.0;
double notaFinal = Math.max(n1, reposicao) + n2;
String status = (notaFinal >= 7 || (notaFinal + exame) / 2 >= 5) ? "Aprovado" : "Reprovado";
System.out.println("Curso: " + arquivoCurso.getName().replace(".csv", ""));
System.out.printf("Notas: N1=%.1f, N2=%.1f, Reposição=%.1f, Exame=%.1f%n", n1, n2, reposicao, exame);
System.out.printf("Média final: %.2f - Situação: %s%n", (notaFinal + exame) / 2, status);
return true;
}
}
}
} catch (IOException e) {
System.out.println("Erro ao ler curso: " + arquivoCurso.getName());
} catch (NumberFormatException e) { //tratativa de erro ao conversor de string para numero
System.out.println("Erro ao converter número no curso: " + arquivoCurso.getName());
}
return false;
}
private static void buscarInformacoesCientificas(int idBusca) {
try (BufferedReader br = new BufferedReader(new FileReader("data/ic_art_ciet.csv"))) {
String linha;
while ((linha = br.readLine()) != null) {
String[] partes = linha.split(",");
if (partes.length >= 3) {
int id = Integer.parseInt(partes[0]);
if (id == idBusca) {
System.out.println("Iniciações Científicas: " + partes[1]);
System.out.println("Artigos Científicos: " + partes[2]);
return;
}
}
}
} catch (IOException e) {
System.out.println("Erro ao ler ic_art_ciet.csv: " + e.getMessage());
}
}
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Scanner;
public class ListarAlunosPorCurso {
public static void listar() {
File pasta = new File("data/");
List arquivosCurso = new ArrayList();
System.out.println("\n=== Cursos Disponíveis ===");
int index = 1;for (File arq : Objects.requireNonNull(pasta.listFiles())) {
String nome = arq.getName();
if (nome.endsWith(".csv") &&
!nome.equals("Alunos.csv") &&
!nome.equals("Login.csv") &&
!nome.equals("cursos.csv")&&
!nome.equals("ic_art_ciet.csv")) { // ignorar estes arquivos
System.out.println(index + ". " + nome.replace(".csv", ""));
arquivosCurso.add(nome);
index++;
}
}
if (arquivosCurso.isEmpty()) {
System.out.println("Nenhum curso encontrado.");
return;
}
Scanner scanner = new Scanner(System.in);
System.out.print("Escolha o número do curso: ");
int escolha;
try {
escolha = Integer.parseInt(scanner.nextLine());
} catch (NumberFormatException e) {
System.out.println("Entrada inválida.");
return;
}
if (escolha arquivosCurso.size()) {
System.out.println("Curso inválido.");
return;
}
String arquivoSelecionado = arquivosCurso.get(escolha - 1);
listarAlunosDoCurso(arquivoSelecionado);
}
private static void listarAlunosDoCurso(String nomeArquivoCurso) {
System.out.println("\n--- Alunos matriculados em: " + nomeArquivoCurso.replace(".csv", "") + " ---");
Map mapaAlunos = carregarAlunos(); // coloca em lista
try (BufferedReader br = new BufferedReader(new FileReader("data/" + nomeArquivoCurso))) {
String linha;
while ((linha = br.readLine()) != null) {
String[] dados = linha.split(",");
int id = Integer.parseInt(dados[0]);
String nome = mapaAlunos.getOrDefault(id, "Nome não encontrado"); // se o valor informado estiver associado a id este será retornado, senão sera retronardo o valor de default "nome nao encontrado"
System.out.println("ID: " + id + " | Nome: " + nome);
}
} catch (IOException e) {
System.out.println("Erro ao ler o arquivo do curso.");
}
}
private static Map carregarAlunos() {
Map mapa = new HashMap();
try (BufferedReader br = new BufferedReader(new FileReader("data/Alunos.csv"))) {
String linha;
while ((linha = br.readLine()) != null) {
String[] dados = linha.split(",");
if (dados.length >= 2) {
int id = Integer.parseInt(dados[0]);
String nome = dados[1];
mapa.put(id, nome);
}
}
} catch (IOException e) {
System.out.println("Erro ao carregar Alunos.csv");
}
return mapa;
}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class MatricularAluno {
private static final String ALUNOS_CSV = "data/Alunos.csv";
private static final String CURSOS_CSV = "data/cursos.csv";
public static void matricularAluno() {
Scanner scanner = new Scanner(System.in);
System.out.println("\n=== Matricular Aluno em Curso Existente ===");
// Mostrar lista de cursos disponíveis
List cursosDisponiveis = listarCursos();
if (cursosDisponiveis.isEmpty()) {
System.out.println("Nenhum curso encontrado.");
return;
}
System.out.println("Cursos disponíveis:");
for (int i = 0; i cursosDisponiveis.size()) throw new Exception(); //mostra uma mensagem de erro
} catch (Exception e) {
System.out.println("Opção inválida.");
return;
}
String nomeCurso = cursosDisponiveis.get(escolhaCurso - 1);
String arquivoCurso = nomeCurso + ".csv";
// Perguntar se aluno já existe
System.out.print("O aluno já está cadastrado? (s/n): ");
String resp = scanner.nextLine().trim().toLowerCase();
int idAluno;
String nomeAluno;
if (resp.equals("s")) {
System.out.print("Digite o ID do aluno: ");
try {
idAluno = Integer.parseInt(scanner.nextLine());
} catch (NumberFormatException e) {
System.out.println("ID inválido.");
return;
}
if (!alunoExiste(idAluno)) {
System.out.println("Aluno não encontrado no sistema.");
return;
}
nomeAluno = obterNomeAluno(idAluno);
} else {
idAluno = CadastroUtils.gerarIdUnico();
System.out.println("ID gerado: " + idAluno);
System.out.print("Digite o nome do aluno: ");
nomeAluno = scanner.nextLine().trim();
salvarAluno(idAluno, nomeAluno);
}
// Inserir notas
double n1 = 0.0, n2 = 0.0, rep = 0.0, ex = 0.0;
System.out.print("Deseja inserir as notas agora? (s/n): ");
if (scanner.nextLine().trim().toLowerCase().equals("s")) {
n1 = solicitarNota(scanner, "Nota 1");
n2 = solicitarNota(scanner, "Nota 2");
rep = solicitarNota(scanner, "Reposição");
ex = solicitarNota(scanner, "Exame");
}
// 4. Escrever no arquivo do curso
try (BufferedWriter bw = new BufferedWriter(new FileWriter(arquivoCurso, true))) {
bw.write(idAluno + "," + n1 + "," + n2 + "," + rep + "," + ex);
bw.newLine();
System.out.println("Aluno matriculado com sucesso no curso " + nomeCurso + ".");
} catch (IOException e) {
System.out.println("Erro ao escrever no arquivo do curso.");
}
}
private static List listarCursos() {
List cursos = new ArrayList();
try (BufferedReader br = new BufferedReader(new FileReader(CURSOS_CSV))) {
String linha;
while ((linha = br.readLine()) != null) {
String[] partes = linha.split(",");
if (partes.length >= 1) {
cursos.add(partes[0]);
}
}
} catch (IOException e) {
System.out.println("Erro ao ler cursos.");
}
return cursos;
}
private static boolean alunoExiste(int id) {
try (BufferedReader br = new BufferedReader(new FileReader(ALUNOS_CSV))) {
String linha;
while ((linha = br.readLine()) != null) {
String[] partes = linha.split(",");
if (Integer.parseInt(partes[0]) == id) {
return true;
}
}
} catch (IOException | NumberFormatException e) {
return false;
}
return false;
}
private static String obterNomeAluno(int id) {
try (BufferedReader br = new BufferedReader(new FileReader(ALUNOS_CSV))) {
String linha;
while ((linha = br.readLine()) != null) {
String[] partes = linha.split(",");
if (Integer.parseInt(partes[0]) == id) {
return partes[1];
}
}
} catch (IOException | NumberFormatException e) {
return "";
}
return "";
}
private static void salvarAluno(int id, String nome) {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(ALUNOS_CSV, true))) {bw.write(id + "," + nome);
bw.newLine();
} catch (IOException e) {
System.out.println("Erro ao salvar aluno.");
}
}
private static double solicitarNota(Scanner scanner, String campo) {
while (true) {
System.out.print(campo + ": ");
try {
return Double.parseDouble(scanner.nextLine().trim());
} catch (NumberFormatException e) {
System.out.println("Nota inválida. Digite um número.");
}
}
}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class CriarCurso {
private static final String CURSOS_CSV = "data/cursos.csv";
private static final String ALUNOS_CSV = "data/Alunos.csv";
public static void criar() { // metodo
Scanner scanner = new Scanner(System.in); // scanner das informaçõesa passadas pelo usuario no terminal
System.out.println("\n=== Criar Novo Curso ===");
System.out.print("Nome do curso (sem espaços): ");
String nomeCurso = scanner.nextLine().trim().replace(" ", "_");
System.out.print("Nível (Ex: Graduação, Pós): ");
String nivel = scanner.nextLine().trim();
System.out.print("Ano de início: ");
String ano = scanner.nextLine().trim();
// Adiciona ao cursos.csv
try (BufferedWriter bw = new BufferedWriter(new FileWriter(CURSOS_CSV, true))) {
bw.write(nomeCurso + "," + nivel + "," + ano);
bw.newLine();
} catch (IOException e) {
System.out.println("Erro ao salvar curso.");
return;
}
// Cria arquivo do curso
String nomeArquivoCurso = nomeCurso + ".csv";
File cursoFile = new File(nomeArquivoCurso);
try {
if (!cursoFile.createNewFile()) {
System.out.println("Arquivo do curso já existia, continuará sendo usado.");
}
} catch (IOException e) {
System.out.println("Erro ao criar arquivo do curso.");
return;
}
// 3. Cadastrar alunos
System.out.print("Quantos alunos deseja cadastrar? ");
int qtd;
try {
qtd = Integer.parseInt(scanner.nextLine()); //parseInt converte string em numero
} catch (NumberFormatException e) {
System.out.println("Número inválido.");
return;
}
for (int i = 0; i = 1 && Integer.parseInt(dados[0]) == id) {
existe = true;
break;
}
}
} catch (IOException ignored) {}
if (!existe) {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(ALUNOS_CSV, true))) {
bw.write(id + "," + nome);
bw.newLine();
} catch (IOException e) {
System.out.println("Erro ao salvar novo aluno.");
}
}
}
private static double solicitarNota(Scanner scanner, String campo) {
while (true) {
System.out.print(campo + ": ");
try {
return Double.parseDouble(scanner.nextLine().trim()); //parseDouble converte string em numero flutuante
} catch (NumberFormatException e) {
System.out.println("Valor inválido. Digite um número.");
}
}
}
}
public class Aluno {
private int id;
private String nome;
private String curso;
private double nota1;
private double nota2;
private double reposicao;
private double exame;
private int artigos;
private int iniciacoes;
public Aluno(int id, String nome) { // construtor que chama na lista o id e nome
this.id = id;
this.nome = nome;
}
public double calcularMedia() { // metodo para calculo de média
double mediaInicial = (nota1 + nota2) / 2.0;
if (mediaInicial >= 7.0) {
return mediaInicial;
}
// Considera a nota de reposição
if (reposicao > 0) {
double melhorNota = Math.max(nota1, nota2);
mediaInicial = (melhorNota + reposicao) / 2.0;
if (mediaInicial >= 7.0) return mediaInicial;
}
// Considera nota de exame
return (mediaInicial + exame) / 2.0;
}
public String getSituacao() {
return calcularMedia() >= 5.0 ? "Aprovado" : "Reprovado";
}
public int getId() {
return id;
}
public String getNome() {
return nome;
}
public String getCurso() {
return curso;
}
public void setCurso(String curso) {
this.curso = curso;
}
public double getNota1() {
return nota1;
}
public void setNota1(double nota1) {
this.nota1 = nota1;
}
public double getNota2() {
return nota2;
}
public void setNota2(double nota2) {
this.nota2 = nota2;
}
public double getReposicao() {
return reposicao;
}
public void setReposicao(double reposicao) {
this.reposicao = reposicao;
}
public double getExame() {
return exame;
}
public void setExame(double exame) {
this.exame = exame;
}
public int getArtigos() {
return artigos;
}
public void setArtigos(int artigos) {
this.artigos = artigos;
}
public int getIniciacoes() {
return iniciacoes;
}
public void setIniciacoes(int iniciacoes) {
this.iniciacoes = iniciacoes;
}
}
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException; // leitura de arquivos
import java.util.HashSet;
import java.util.Random; // gera numeros aleatorios
import java.util.Set;
public class CadastroUtils {
private static final String ALUNOS_CSV = "data/Alunos.csv";
public static int gerarIdUnico() {
Random random = new Random();
Set idsExistentes = carregarIdsExistentes();
int novoId;
do {
novoId = 1000 + random.nextInt(9000); // Gera entre 1000 e 9999
} while (idsExistentes.contains(novoId));
return novoId;
}
private staticSet carregarIdsExistentes() {
Set ids = new HashSet(); // eliminar duplicatas
try (BufferedReader br = new BufferedReader(new FileReader(ALUNOS_CSV))) {
String linha;
while ((linha = br.readLine()) != null) {
String[] partes = linha.split(",");
if (partes.length >= 1) {
try {
ids.add(Integer.parseInt(partes[0]));
} catch (NumberFormatException ignored) {}
}
}
} catch (IOException e) {
System.out.println("Erro ao carregar IDs existentes: " + e.getMessage());
}
return ids;
}
}