Boa tarde pessoal.
Sou novo em java e tenho um projeto onde simulo certas operações de banco como por exemplo o cadastro de clientes dentro de um arquivo .csv, o problema é que para fazer este cadastro preciso fazer uma comparação do código do cliente com os códigos do arquivo que contém os nomes dos clientes já cadastrados ou seja o método não pode permitir que aconteça o cadastro de clientes com o código repetido é exatamente este o problema que estou tendo dentro do método.
Blockquote private static void cadastraConta() { System.out.println(“Digite os dados da conta:”); System.out.println("Código: "); String codigoConta = scan.nextLine(); codigoConta = scan.nextLine(); System.out.println("codigo do cliente: "); String codigoCliente = scan.nextLine(); System.out.println("Data de criação: "); String dataCadastro = scan.nextLine();
A leitura é feita feita dentro destas variáveis.
Blockquote try { FileReader leitorContaComparacao = new FileReader(“conta.csv”); BufferedReader leitorContaCompara = new BufferedReader(leitorContaComparacao); String linhaContaCompara = leitorContaCompara.readLine(); String[] vetorContaComparacao; boolean verificarConta = false;
Ai tem a leitura do arquivo .csv que o método precisa ler criei uma variável booleana para fazer a validação dentro do loop de leitura.
Blockquote while (linhaContaCompara != null) { vetorContaComparacao = linhaContaCompara.split(";"); if (vetorContaComparacao[0].equals(codigoConta)) { } else { verificarConta = true; } linhaContaCompara = leitorContaCompara.readLine(); }
A leitura de todo arquivo é feita aqui e ai tem a variável que válida a leitura fazendo que o conteúdo seja escrito dentro do arquivo .csv
Blockquote if(verificarConta == true) { linhaContaCompara = leitorContaCompara.readLine(); FileWriter escreverConta = new FileWriter(“conta.csv”, true); BufferedWriter escreveArquivoConta = new BufferedWriter(escreverConta); escreveArquivoConta.write(codigoConta + “;” + codigoCliente + “;” + dataCadastro); escreveArquivoConta.newLine(); escreveArquivoConta.close(); escreverConta.close(); System.out.println(“Cadastro feito com sucesso!”); } else { System.out.println(“Codigo da conta já existe!”); }
E aqui é a escrita no arquivo.
O problema é que ele faz a leitura e se o código estiver repetido dentro do arquivo ele ainda continua fazendo a leitura e escrevendo dentro do código.
Qual o erro que cometi e o que devo fazer para corrigi-lo?