Busca em arquivo

Pessoal sou novo aki no fórum gostaria de saber qual o melhor algorítmo para busca em arquivo aleatório, abaixo segue o q eu estou usando so q ele testa todos os registro até encontrar o q eu quero, criei uma classe “pessoa extends serializable”, estou gravando objetos, estou usando registros de tamanho fixo,

RandomAccessFile arq = new RandomAccessFile(“nomes.dbf”, “r”);

do{
p.Nome = arq.readUTF(); //p=instancia da classe pessoa //le o nome da pessoa
p.Idade = arq.readInt(); // Le a idade da pessoa
p.Telefone = arq.readUTF(); //Le o telefone da pessoa

if(p.Nome.equals(tfNome.getText()))    
         encontrado = true;                                                            			

}while(encontrado==false && p!=null); // Enquanto nao encontrar a pessoa ou não chegar ao final do arquivo

Será q alguém possa me ajudar?

Credo, não dava para usar um banco de dados de verdade?
Pode usar o HSQLDB, ( http://hsqldb.sourceforge.net ), ele é bem compacto e flexível (embora não seja o banco mais rápido do mundo :wink: )
Mas fazer no braço como você quer fazer, só se for para você resolver a prova da certificação do Java Developer :wink: )

Até num vai ser difícil não o q eu quero fazer ´c coisa boba, mas eu to querendo mecher com dispositivos móveis, eu tenho q trabalhar direto com arquivos, ou existe algum BD p/ isso?
:wink: