Gravação em Arquivo Binário

Bom dia pessoal… novamente antes de postar pesquisei e não consegui achar nada…

Estou querendo gravar informações em arquivos binários porem ele sempre sobre escreve, perdendo os dados anteriores.

Como eu posiciono o ponteiro para o próximo registro a ser gravado no arquivo ?

segue abaixo a minha implementação:

System.out.println("Informação a ser gravada:");
						inf = scan.next();
					
						ArqOut = new ObjectOutputStream(new FileOutputStream(new File("Arquivo.bin")));
					
						inf = new Informacao(inf);//constructor da classe Informacao 
						ArqOut.writeObject(inf);
						ArqOut.flush();
						ArqOut.close();

						System.out.println("Dados gravados com sucesso!");

Obrigado

Use:

//FileOutputStream(String name, boolean append) ;

ArqOut = new ObjectOutputStream(new FileOutputStream(new File("Arquivo.bin")), true);

[quote=squall926]Use:

[code]
//FileOutputStream(String name, boolean append) ;

ArqOut = new ObjectOutputStream(new FileOutputStream(new File(“Arquivo.bin”)), true);
[/code][/quote]

funcionou! Porem agora estou tendo outro problema.

quero passar todos os objetos que estão gravados no .bin para um arraylist mas durante o while ele cai fora do laço.

ArqBin = new File("filmes.bin");
if(ArqBin.exists()){
	try{
            ArqIn = new ObjectInputStream(new FileInputStream(new File("filmes.bin")));
	    try{
	        Filme film = null;
		while(true){
		    film = (Filme)ArqIn.readObject();
		    ListaFilme.add(film);
		}
	   }catch(EOFException endOfFile){
	         System.out.println("Transação efetuada.");
           }catch(ClassNotFoundException e){
	         System.out.println("erro de conversão");
       }	
       }finally{
	    if(ArqIn != null);
	    ArqIn.close();
       }
}
break;						
					

Você pode especificar exatamente o que você está tendando fazer? Visão macro…