+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 پاسخ 536 بازدید
+1 امتیاز
1 پاسخ 767 بازدید
0 امتیاز
1 پاسخ 455 بازدید
0 امتیاز
1 پاسخ 293 بازدید
0 امتیاز
2 پاسخ 607 بازدید
0 امتیاز
2 پاسخ 1.9هزار بازدید
0 امتیاز
1 پاسخ 2.4هزار بازدید
+1 امتیاز
1 پاسخ 186 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط HS (12 امتیاز)
0 امتیاز
0 پاسخ 159 بازدید
...