+1 امتیاز
قبل در برنامه نویسی توسط (7.2هزار امتیاز)
ویرایش شده قبل توسط
همانگونه که دوستان گفتند 2 راه برای دریافت ورودی از طریق CLI وجود دارد، تفاوت این دو (Scanner و BufferedReader ) در چیست؟ استفاده از کدام یک در چه مواردی بهتر است؟

1 پاسخ

+1 امتیاز
قبل توسط (1.1هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

تفاوت اصلی این دو کلاس در فلسفه ایجاد شدن هر کدام است. قابلیت اصلی کلاس Scanner، تجزیه کردن (pars) محتوای یک stream است در حالی که BufferedReader هیچ گونه عملیاتی برای تجزیه کردن (pars) محتوای stream ندارد در عوض قابلیت اصلی آن استفاده از buffer برای بالا بردن کارایی است.

متد های کلاس BufferedReader  قابلیت synchronized دارند در حالی Scanner خیر.

پیشنهاد من اینه که اگر می خواهید یک فایل را فقط بخوانید از BufferedReader استفاده کنید ولی اگر می خواهید فایل را بخوانید و عملیات تجزیه کردن (pars) برروی آن انجام دهید از Scanner استفاده کنید و بعنوان constructor به آن BufferedReader بدهید (برای داشتن کارایی بهتر):

        Scanner scanner = new Scanner(new BufferedReader(
                new InputStreamReader(System.in)));

سوالات مشابه

+1 امتیاز
1 پاسخ 635 بازدید
+1 امتیاز
1 پاسخ 860 بازدید
0 امتیاز
1 پاسخ 473 بازدید
0 امتیاز
1 پاسخ 310 بازدید
0 امتیاز
2 پاسخ 670 بازدید
0 امتیاز
2 پاسخ 1.9هزار بازدید
0 امتیاز
1 پاسخ 2.5هزار بازدید
+1 امتیاز
1 پاسخ 207 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط HS (12 امتیاز)
0 امتیاز
0 پاسخ 173 بازدید
...