Khi javadoc cho biết, bạn không cần cần để tự xả. Nhưng, nó vẫn còn tốt để làm, xem xét độc giả của bạn, và ý thức chung.
Rất ít chuyên gia biết javadoc bằng trái tim. Tôi sẽ không biết chắc chắn liệu luồng này có bị xóa hay không mà không tra cứu, và có lẽ tôi không đơn độc. Thấy rõ ràng cuộc gọi flush()
làm cho điều này hoàn toàn rõ ràng, và do đó làm cho mã dễ đọc hơn.
Hơn nữa, tên phương pháp close()
ngụ ý gì về đỏ bừng. Đó là giao diện Closeable
, và tự nhiên, nó không nói gì về xả nước. Nếu bạn không tuôn ra luồng đầu ra được đệm trước khi đóng, bất chấp muốn xóa nó, bạn sẽ dựa vào các giả định có thể có hoặc không đúng. Nó sẽ làm suy yếu việc triển khai của bạn.
Bất kỳ giả định nào bạn thực hiện, bạn bằng cách nào đó sẽ chuyển sang các nhà bảo trì trong tương lai. Một cách để làm điều đó là bằng cách để lại bình luận:
// no need to flush() manually, close() will do it automatically
Nếu bạn không để lại nhận xét này, bảo trì trong tương lai có thể phải tra cứu javadoc quá, nếu như tôi rằng họ don' t có nó ghi nhớ. Nhưng sau đó, tại sao bạn sẽ viết bình luận như vậy khi nó dễ dàng hơn và tốt hơn để chỉ cần gọi nó là chính mình bây giờ và được thực hiện với nó.
Tóm lại, xả trước trước khi đóng chỉ đơn giản là theo logic tốt. Không cần giả định và dự đoán thứ hai, và không cần phải làm cho độc giả của bạn suy nghĩ.
IMO, bạn không, nhưng điều này không có nghĩa đó là một ý tưởng tốt :-) nếu bạn chuyển từ Writer hay OutputStream thực hiện, bạn có thể chấm dứt hành vi bất ngờ có nếu bạn không tuôn những người cần nó. Bạn có thể tranh luận rằng có một số flush() es là một thiết kế JVM xấu, sau đó câu trả lời của tôi là "có thể" :-) Một điều khác mà chúng tôi có thể nghiên cứu về khả năng tương thích ngược, nếu các phiên bản trước của JVM cũng hoạt động tốt mà không có tuôn ra(). – Leo
Chính xác bạn đang hỏi về điều gì, điều này không nằm trong câu hỏi mà bạn đang liên kết đến? – jarnbjo
@ jarnbjo, tôi chỉ cần biết nếu đây chỉ là một công việc nhàn rỗi execpt rằng điều này chỉ tuân theo một quy tắc một cách rõ ràng? – Jaskey