Да, флеш должен быть надежным. Его основная роль - «выталкивать» любые лишние данные.
Однако, чтобы быть справедливым, это будет работать только с вашими основными писателями. Помните, я думаю, что это большинство, если не все, из них.
Но рассмотрим какой-нибудь придуманный особый вид писателя. Что-то, что «делает что-то еще» при закрытии. Как поток шифрования или сжатия.
Скажем, у вас был "писатель кодировщика base64", он не может безопасно написать потенциально завершающий "==", пока он не ГОТОВ, и это конец, а не сброс.
Но с этим предостережением для вашего случая с PrintWriter это не должно быть проблемой.