Como usar flush () para PrintWriter

Tenho alguns códigos como este:

PrintWriter pw = new PrintWriter(new BufferedReader(....));
for(int i=0; i<10; i++) {
    pw.println("a");
    pw.flush();// flush each time when println()?
}
pw.close();

É orubor( em cada declaração 'for' necessariamente? Ouvi dizer que flush () invocaria automaticamente quando invocassefechar(. Se eu escrever um código como este:

PrintWriter pw = new PrintWriter(new BufferedReader(....), true);

e eu não escreveria pw.flush () não mais? Obrigado

questionAnswers(4)

yourAnswerToTheQuestion