Programa nao abre mais arquivo .dat!

Pessoal, seguinte:

Fiz um programinha que cria uma List de dados e salva em um arquivo hamado dados.dat. Quando executo o programa de novo, como o arquivo já existe, ele então abre o arquivo, pega a lista para adicionar ou alterar novos dados, e quando eu fecho o programa, a nova lista é reescrita no arquivo .dat.

Tentei atualizar o programa, para em vez de sobreescrever a nova lista no arquivo somente quando fecha o programa, ele salvar sempre que uma alteração for feita (já perdi alguns dados por deixar o programa aberto e dä um pau no Windows fechando tudo!).

Com as alterações concluídas, eu consigo criar um novo arquivo dados.dat, e funciona normalmente quando reexecuto o programa. Só que eu quero colocar o arquivo .dat antigo (que tem todos os cadastros) para o novo programa abrir e não consigo!

Eu estou usando ObjectOutput/InputStream, com os comando read/writeObject para ler e sobreescrever o arquivo. Quando eu coloco o aruivo .dat antigo para rodar no programa, não consigo nem adicionar nem localizar o cliente (nullPointException), como se o List do arquivo não estivesse sendo lido!

O arquivo só funciona normalmente quando eu coloco no diretório do programa antigo, tanto .jar quanto os .class.

Alguém já passou por isso? O que tá aconteendo? Foi mal pelo post grande, mas não tem outro jeito para explicar…

()'s

Mostra o programa.

Deixa ver se eu entendi direito (desculpa, mas ficou meio confuso):
Você conseguiu arrumar o código para gravar a cada atualização e seus testes funcionaram direitinho com um .dat zerado.
Agora você quer voltar o .dat que já estava sendo usado para rodar com esse código novo só que o código novo não consegue ler o .dat

É isso? Se for, a impressão que fica é que você acabou mudando alguma coisa na hora de ler/gravar e a leitura nova não bate com a gravação antiga…