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?