devi far fare la scrittura del file da uno swing worker, sincronizzando ovviamente in maniera opportuna.
La velocità di una applicazione dipende da tanti fattori, detta così non ha molto senso...
Tener il file sempre aperto non è opportuno: chi lo legge ha accesso quando c'è il lock in scrittura? la scrittura è fatta spesso? devi ritornare all'inizio del file ogni volta e cancellare tutto. (ora lo fai).