public void gravarObjetoEmArquivo(Object o)
throws IOException
{
ObjectOutputStream oos = new ObjectOutputStram(new FileOutputStream("arquivo"));
oos.writeObject(o);
}
Suponha ainda q eu tenha uma aplicação com várias threads gravando objetos a partir desse método.
Pergunta: preciso sincronizá-lo?
Abraços.
Isso depende da forma com que vc trabalha o objeto que será gravado , pois se uma Thread está em vias de gravar o objeto e outra Thread o está modificando então vc deve sincronizar o acesso à ele, senão a gravação da primeira thread pode ficar inconsistente, assim :
public void gravarObjetoEmArquivo(Object o)
throws IOException
{
ObjectOutputStream oos = new ObjectOutputStram(new FileOutputStream("arquivo"));
syncronized( o ){
oos.writeObject(o);
}
}
Em relação ao acesso ao arquivo ( caso seja sempre o mesmo para todas as threads ) o proprio SO provê semáfaros de acessos ou locks.
Voce precisa de algumas coisas:
-Uso correto de streams, fechando eles ao final do seu uso.
-Devida sincronização já que o arquivo é sobrescrito toda vez.