Olá pessoal 
Sou ainda inexperiente em java e tenho o seguinte problema:
Criei um programa para abrir um ficheiro .dat com informações. Quero Ter sempre o contudo disponivel para não estar sempre a abrir a fechar o ficheiro .dat. Criei um método para ler a informação do ficheiro .dat. Contudo, quando utilizo o metodo mais que uma vez começa a dar erro, dizendo que não existe objecto. Para ler de novo o conteudo tenho de fechar o ficheiro .dat e abri-lo de novo. Por exemplo, em C bastava utilizar a função rewind para voltar a apontar pró inicio das listas. Calculo que o meu problema tenha a ver com um método que me posicione pro inicio do stream no ficheiro. Como se faz isso em C.
Abraços, 
Já percebi que a solução para o meu problema é utilizar a classe RandomAccessFile. Mas como é que eu leio, por exemplo, listas de dado aqui? Só consigo ler Strings e int e pouco mais… :shock: Alguém me podia dar algum exemplo de como se lê atraves da classe RandomAccessFile?
Abraço:)
RandomAccessFile só lê arrays de bytes; você vai ter de transformar esses arrays nos dados desejados. Como é que você gravou o tal arquivo .dat? O formato é muito importante nessa hora.
Olá
Criei uma classe com vários atributos. Coloco os dados num arrayList e guardol esse arrayList no ficheiro .dat. Cada novo objecto da classe que eu crio adiciono ao arraylist. Estou utilizando as classes FileOutputStream e ObjectOutputStream para guardar o arraylist.
Abraços 
Um ObjectOutputStream só pode ser lido, e sequencialmente, com um ObjectInputStream.
Para piorar um pouco a situação, se você gravar um ObjectOutputStream com um programa em uma determinada versão do Java e tentar lê-lo com um ObjectInputStream em uma outra versão do Java, você pode ter alguns problemas de incompatibilidade binária.
Não dá para ler um ObjectOutputStream com um RandomAccessFile, a menos que você saiba o formato binário de um ObjectOutputStream, que é um bocadinho complexo, e saiba o que está fazendo.
Olá
Olha, existe alguma maneira de poder posicionar-me no inicio da stream guardada no ficheiro .dat sem ter de andar sempre a abrir e a fechar o ficheiro .dat. Pelo que me parece só é possivel em objectos RandomAccessFile (atraves de seek()), correcto?
Obrigado. 