Seguraça em escrita de arquivos

Olá a todos,

Estou com um certo problema na manipulação de arquivos, estou trabalhando com transações que exigem que algo seja escrito em arquivo e que a todo custo este seja salvo com segurança.

O problema é o seguinte quando faço uma instanciação de uma classe manipuladora de arquivos como esta:

FileWriter fileWriter = new FileWriter(file, false);

ou esta

FileOutputStream foStream = new FileOutputStream(file,false);

o conteúdo do arquivo é apagado, fiz testes debugando e já na instanciação o seu conteúdo é apagado, penso em um caso muito específico que pode me resultar em problemas, digamos que no momento que o programa estiver executando e ocorrer uma queda de energia sem antes ter executado o close() do FileWriter ou do FileOutputStream os dados serão perdidos, sei que poderia usar o modo append = true, mas a questão é a seguinte, este arquivo poderá ser lido posteriormente e ter seu conteúdo atualizado, ou seja não posso usar o modo append pois ele estará adicionando a mesma informação no fim do arquivo. Alguém tem alguma idéia de como trabalhar tipo uma situação parecida de um banco transacional como o MySQL que se for utilizado o autocommit=false e os dados não forem commitados com segurança ele fará um rollback na inicialização do banco de dados.

Desde já obrigado.