Ti consiglio alla fine del writer di inserire anche la seguente istruzione:

writer.flush();

che garantisce l'immediata scrittura sul disco dal buffer e poi pulisce quest'ultimo.

Ciao