Organização Relativa com RandomAccesFile  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
ivinfo
Smalltalk

Membro desde: 10/05/2007 13:12:11
Mensagens: 2
Localização: Recife - PE
Offline

Olá pessoal.

Sou novo aqui no forum e no desenvolvimento em java.

Seguinte. To precisando implementar uma Organização Relativa em arquivos binários usando a classe RandomAccessFile para um projeto de Estrutura de Dados. Nunca usei essa classe e to com muita dificuldade na implementação.

Vou usar como exemplo uma classe aluno que tem os seguintes atributos:

mat int 4 PK
nome String 40
flagAtivo char 1

Nesse caso cada registro terá 45 caracteres. O atributo mat seria usado para a organização relativa, onde, gráva-se os registros relativamente às suas chaves. Ex:

Mat = 1, grava na posição 1 à 45;
Mat = 2, grava na posição 46 à 90;
Mat = 5, grava na posição 181 à 225;

Meu problema é o seguinte:
- Como tratar os dados e gravar cada registro com 45 posições no arquivo?
- Como gravar/consultar os registros relativamente?

Quem poder me ajudar eu agradeço.

[]'s
_____________________________________________________
Ivan Sérgio.

_________________________________________________
Ivan Sérgio.
jairelton
JavaChild

Membro desde: 23/06/2006 13:36:04
Mensagens: 108
Offline

Fiz algo muito semelhante para o projeto de certificação SCJD.

Você pode usar o metodo seek(), que recebe a posição para a qual você vai enviar o ponteiro do arquivo, para mover para um registro especifico você pode fazer:



Só que para pular registro, você terá que inserir registros brancos neles, nesse caso aí você vai escrever o registro 1 na posição 0, o registro 2 na posição 2, um registro vazio nas posições 3 e 4, e o registro 5 na posição 5.

Jair Elton
ivinfo
Smalltalk

Membro desde: 10/05/2007 13:12:11
Mensagens: 2
Localização: Recife - PE
Offline

jairelton obrigado por ter respondido.

Meu principal problema é como gravar os resgistros com 45 caracteres. Ex.:

|***1NOME DO ALUNO***************************S|***2NOME DO ALUNO2**************************S||*********************************************|
|*********************************************||***5NOME DO ALUNO5**************************S|

Onde os * seriam caracteres em branco. Espero ter sido claro na explicação.

Desde já agradeço.

[]'s
_____________________________________________________
Ivan Sérgio.

_________________________________________________
Ivan Sérgio.
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team