ما در جاوا از System.out برای نمایش داده در صفحه و برای گرفتن داده از System.in استفاده میکنیم.
ولی System.in دارای یک کمبود است - System.in فقط به ما اجازه خواندن character code را از کیبورد میدهد. برای حل این مشکل و خواندن یکجای تکه های بزرگتر داده از ساختار های پیچیده تری استفاده خواهیم کرد:
برای خواندن رشته از کیبورد بهتر است از آبجکت BufferedReader استفاده کرد. ولی برای این کار باید آجکتی را که قرار است از آن داده ها خوانده شود را به BufferedReader بفرستید. برای مثال در این مورد System.in.
ولی System.in و BufferedReader ناسازگار هستند. پس ما از یک adapter دیگر - از آبجکت InputStreamReader استفاده میکنیم.
استفاده از کلاس Scanner خوب است ولی هرچقدر که پیش میروید (هم در آموزش و هم در کار)، مامولا از BufferedReader و InputStreamReader استفاده خواهید کرد، ولی از Scanner خیلی کم.