Il secondo parametro che passi al costruttore di FIleOutputStream è un booleano che indica se lo stream deve essere in modalità "append" (= concatenazione) oppure no. Mettendo
true gli stai dicendo di aggiungere il contenuto alla fine del file, che è esattamente l'opposto di quello che vuoi fare tu.
L'intero programma potrebbe essere riscritto sfruttando il costrutto try-with-resources disponibile da Java 7, che fra l'altro previene il problema della chiusura dello stream (che può lanciare a sua volta una IOException):
File file = new File("..\\datain\\filedatain.txt");
try (FileWriter fw = new FileWriter(file)) {
fw.write(dir);
} catch (IOException e) {
// ...
}