+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 پاسخ 732 بازدید
+1 امتیاز
1 پاسخ 981 بازدید
0 امتیاز
1 پاسخ 591 بازدید
0 امتیاز
1 پاسخ 393 بازدید
0 امتیاز
2 پاسخ 863 بازدید
0 امتیاز
2 پاسخ 2.0هزار بازدید
0 امتیاز
1 پاسخ 2.6هزار بازدید
+1 امتیاز
1 پاسخ 303 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط HS (12 امتیاز)
0 امتیاز
0 پاسخ 241 بازدید
...