And as per question for reading a text file you should use BufferedReader because Scanner hides IOException while BufferedReader throws it immediately.
BufferedReader is synchronized and Scanner is not.
Scanner:- is used for parsing tokens from the contents of the stream.
BufferedReader:- BufferedReader just reads the stream.
FileReader is just a Reader which reads a file, using the platform-default encoding (urgh)
BufferedReader is a wrapper around another Reader, adding buffering and the ability to read a line at a time
Scanner reads from a variety of different sources, but is typically used for interactive input. Personally I find the API of Scanner to be pretty painful and obscure.
To read a text file, I would suggest using a FileInputStream wrapped in an InputStreamReader (so you can specify the encoding) and then wrapped in a BufferedReader for buffering and the ability to read a line at a time.
Markdown for AI
A clean, structured version of this page for AI assistants and LLMs.
We use cookies to ensure you have the best browsing experience on our website. By using our site, you
acknowledge that you have read and understood our
Cookie Policy &
Privacy Policy.
Can you answer this question?
Write Answer2 Answers