نوشته شده توسط
vahid-p
اولین تفاوت اینه که BufferedOutputStream و FileOutputStream که اولی برای استریم های مختلفی (از جمله فایل) هست ولی دومی فقط برای فایل. بهتر بود با OutputStream مقایسه میشد.
اما معنای تقریبی بافر (Buffer) خروجی یعنی مقادیر نسبتا زیادی در مموری نوشته میشه ولی لزوما در خروجی نوشته نمیشه و در مموری قرار میگیره و بعد یک مرتبه در خروجی نوشته میشه یا لااقل مقادیر زیادی با هم نوشته میشن. ولی در حالت غیربافر مقادیر (هر چقدر هم کم باشن) مستقیما در خروجی نوشته میشن. اگر فایل باشه خب هر مقدار کمی در فایل نوشته میشه ولی بافر شده اونها رو جمع میکنه و مقادیر زیادی رو یک مرتبه در دیسک مینویسه. هر چند ممکنه با اینکه از بافر استفاده نکنید خود سیستم عامل بافر کنه و برای همین لازمه flush کنید.
همین ذخیره کردن مموری و مقادیر زیادی با هم نوشتن در خیلی از مواقع باعث بالا رفتن شدید کارایی میشه. لازمه در مورد بافر بیشتر بخونید. همچنین سرچ کنید Differences between OutputStream and BufferedOutputStream