Как говорится в javadoc, вам не нужно необходимо, чтобы промотать себя. Но это все еще хорошо, учитывая ваших читателей и здравый смысл.
Немногие эксперты знают наизусть джавадок. Я бы точно не знал, будет ли поток покраснеть или нет, не глядя, , и я, вероятно, не одинок. Увидев явный вызов flush()
, это совершенно ясно, и, следовательно, делает код более удобным для чтения.
Кроме того, имя метода close()
ничего не говорит о промывке. Это от интерфейса Closeable
, и, естественно, ничего не говорится о промывке. Если вы не очищаете буферный выходной поток перед закрытием, , несмотря на то, что он хочет сбросить его, вы будете полагаться на предположения, которые могут быть или не быть правдой. Это ослабит вашу реализацию.
Любые сделанные вами предположения, вам следует каким-то образом перейти к будущим сопровождающим. Один из способов сделать это, оставив комментарий:
// no need to flush() manually, close() will do it automatically
Если вы не оставить этот комментарий, будущее Сопровождающие может иметь для поиска в Javadoc тоже если, как я, они не» запомните. Но тогда, зачем вы пишете такой комментарий, когда проще и лучше просто называть это сейчас и делать с ним.
Короче говоря, сначала промывка перед закрытием просто правильная логика. Нет необходимости в предположениях и предположениях, и не нужно заставлять читателей думать.
IMO, вы этого не делаете, но это не значит, что это хорошая идея :-) если вы переключитесь с реализации Writer или OutputStream, вы можете прекратить неожиданное поведение, если не очистите те, которые в этом нуждаются. Вы можете утверждать, что наличие бесполезного флеша() - плохой дизайн JVM, тогда мой ответ «возможно» :-) Еще одна вещь, которую мы можем исследовать, - это обратная совместимость, если предыдущие версии JVM также хорошо работают без промывать(). – Leo
Что именно вы спрашиваете, на что не связано вопрос, на который вы ссылаетесь? – jarnbjo
@jarnbjo, мне просто нужно знать, является ли это всего лишь незанятым произведением, что это явно следует за правилом? – Jaskey