Excluir arquivos usando acesso sequencial

3 respostas
J

Olá pessoal do GUJ, estava precisando de uma ajuda aqui. Estou fazendo o cadastro de usuários para um clube usando arquivos, mais espicíficamente arquivos de texto de acesso sequencial, porque os arquivos de acesso aleatório ainda são complexos para mim que estou apenas a alguns meses em cima de Java. Queria saber como excluir esses sócios de clube usando a estrutura de acesso sequencial.

Obrigado, estarei esperando pela ajuda '^^.

3 Respostas

acopiara

Você vai ter que sair percorrendo todo o arquivo até achar a linha do qual o registro a ser removido está e depois apaga-la. Use BufferedReader.
Mas por que você não usa o derby que é um BD embarcado e acho que já vem no java6.

Valeu

J

Hum, sim podia utilizar BD mesmo mas é trabalho final de faculdade e o professor especificou queria nos ver usando arquivos, fazer o que? >.< bom aproveitando surgiu outra dúvida enquanto eu e meu companheiro estavamos a programar esse trabalho.
Como anexar um registro no final de um arquivo já existente???

T

“Acesso seqüencial” (ou seja, só usando InputStream/OutputStream ou Reader/Writer) tem vários problemas:

  • Para você inserir alguma coisa, só no final do arquivo (“append”);
  • Para você remover alguma coisa, você teria de fazer uma cópia do arquivo original em outra que não tivesse essa tal coisa;
  • Para você inserir alguma coisa no meio do arquivo, só fazendo uma cópia do arquivo original em outra.

Se você quer usar acesso aleatório, (“RandomAccessFile”), algumas dessas coisas são possíveis, mas pondo uma “marca” em cada registro para indicar que ele foi deletado e está disponível, e além disso os registros devem ser de tamanho fixo. Se os registros forem de tamanho variável, o controle desses registros em arquivo é complexo (mesmo bancos de dados nem sempre reaproveitam o espaço de registros deletados!)

Criado 24 de junho de 2007
Ultima resposta 25 de jun. de 2007
Respostas 3
Participantes 3