copiei esse codigo de um post do guj, percebi que funciona com ou sem o flush.. não entendo para que ele serve......
private static final String path = "c:\\teste6.txt";
public static void main(String[] args) throws IOException {
File file = new File(path);
// Cria o arquivo se não existir
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write("Arquivo gravado em : " + new SimpleDateFormat("dd/MM/yyyy hh:mm:ss").format(new Date()));
writer.newLine();
writer.newLine();
writer.newLine();
writer.newLine();
writer.write("Caminho da dfasfsadfasdfadsfadsfasdfasdfsadfsdafsdafdsfadsfasdfdasff: " + path);
//Criando o conteúdo do arquivo
// writer.flush();
//Fechando conexão e escrita do arquivo
writer.close();
System.out.println("Arquivo gravado em: " + path);
}