Olá, bom dia.
Estou com problemas em um método que cadastra fornecedores de uma empresa em um arquivo texto.
Cadastrar é moleza; o problema surge quando cadastro um fornecedor já existente. O método deveria verificar a existência do fornecedor (através do cnpj) e apenas atualizar os dado, porém ele apaga todos os dados anteriormente cadastrados e deixa apenas o fornecedor atualizado. Não sei o que fiz de errado, alguém pode me ajudar?
Eis o código:
` public void cadastrar() throws IOException {
// Criando o novo objeto Arquivo
Arquivo arquivo = new Arquivo("fornecedores");
// Limpando todos os dados do ArrayList
fornecedores.clear();
// Adicionando os dados do arquivo
fornecedores = arquivo.lerArquivoLeitura();
// Formatando as informações
String dados = String.format("%s;%s;%s;%s", this.cnpj, this.nome, this.telefone, this.email);
boolean encontrado = false;
// Verificando se o fornecedor já está cadastrado
for (int i = 0; i < fornecedores.size(); i++) {
if (fornecedores.get(i).contains(this.cnpj)) {
// Caso esteja, atualiza seus dados
fornecedores.set(i, dados + "%n");
encontrado = true;
break;
}
}
if (!encontrado) {
// Se não estiver, atualiza o ArrayList com o novo dado
fornecedores.add(dados + "%n");
}
// Pondo os novos dados no arquivo
for (String fornecedor : fornecedores) {
arquivo.gravarDados(fornecedor);
}
// Fechando o arquivo
arquivo.fecharArquivoGravacao();
}`
P.S.: A classe Arquivo contém os objetos de gravação e leitura de arquivo texto e possui métodos já prontos pra gravar e ler arquivos.