You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
eferenciar um arquivo, evitando problemas de dependência à organização dos arquivos no sistema em<br />
que a máquina virtual está rodando. E lembre-se de usar sempre a barra invertida '\' como separador de<br />
diretórios. É fortemente recomendado que você leia a documentação da classe <strong>Java</strong>.io.File acerca das<br />
facilidades de manipulação das informações sobre o conteúdo e as características básicas dos arquivos.<br />
Manipulação de arquivos randômicos<br />
Um dos problemas do uso de arquivos seqüenciais é a necessidade de ler ou escrever todo o conteúdo<br />
desses arquivos, mesmo que um determinado processo necessite apenas de uma parte de seu<br />
conteúdo. Imagine que você tenha um arquivo texto com quinhentos nomes, e precise verificar o<br />
centésimo nome – nesse caso, você terá que ler 99 nomes desnecessários até obter a informação que<br />
necessita. O ideal, nesse caso, é manipular arquivos como se fossem bancos de dados, ou seja, ter a<br />
capacidade de acessar um dado em uma posição específica dentro do arquivo, sem a necessidade de<br />
percorrer o resto desse arquivo. <strong>Java</strong> provê classes para a manipulação de arquivos de acesso<br />
randômico, ou seja, arquivos que possuem um ponteiro (file pointer) que permite a localização dos<br />
dados dentro do arquivo.<br />
Para manipular um arquivo de acesso randômico, constrói-se um objeto da classe<br />
java.io.RandomAccessFile, passando como parâmetro um objeto do tipo File:<br />
File arquivo = new File("origem.txt");<br />
RandomAccessFile manipulador = new RandomAccessFile(arquivo, "rw");<br />
Note que o primeiro argumento do construtor do manipulador de arquivos randômicos é a referência ao<br />
arquivo, enquanto o segundo argumento é o tipo de acesso que será utilizado:<br />
r Read Only, significando que o acesso ao arquivo será apenas para leitura<br />
rw Read and Write, significando que o acesso permite a leitura e/ou modificação do conteúdo do<br />
arquivo.<br />
Como a classe RandomAccessFile implementa as interfaces DataInput e DataOutput, o acesso aos<br />
dados de um arquivo de acesso randômico é feito através dos métodos definidos nessas interfaces,<br />
basicamente read() e write(). Leia a documentação da classe java.io.RandomAccessFile para a<br />
completa descrição dos método de leitura e escrita, bem como os parâmetros desses métodos.<br />
O posicionamento da leitura ou escrita em arquivos randômicos é ajustado ou reconhecido através de<br />
dois métodos:<br />
void seek(long)<br />
long getFilePointer()<br />
long lenght()<br />
O método seek ajusta o ponteiro do arquivo a uma determinada posição, considerando o intervalo padrão<br />
do arquivo, que pode ser o tamanho de um tipo de dado ou definido pelo programador. O método<br />
getFilePointer retorna a posição atual desse ponteiro, e o método lenght retorna o tamanho total do<br />
arquivo. Exemplo de posicionamento em um arquivo de acesso randômico:<br />
// Criando a referência ao arquivo de acesso randômico<br />
File arquivo = new File("vendas.log");<br />
123