BufferedReader如何在java中工作

Viv*_*mar 0 java bufferedreader inputstreamreader

我想知道BufferedReader的工作原理吗?为什么使用InputStreamReader?它与Scanner类有何不同,后者也用于输入用户?哪两个更好?

Oli*_*lin 5

主要区别是

  1. Scanner用于从流的内容中解析令牌,而BufferedReader只读取流并且不进行任何特殊的解析.实际上,您可以将BufferedReader传递给扫描程序作为要解析的字符源.
  2. 另一个区别是缓冲区的大小.扫描仪的缓冲区比BufferedReader小得多(1024个字符而不是8192个字符).尽管这听起来像相当的差距,扫描仪的缓冲区足以满足大多数任务.
  3. 当BufferedReader立即抛出IOExceptions时,Scanner也会隐藏 IOExceptions,这会带来优点和缺点.
  4. 最后,BufferedReader是同步的,而Scanner则不是.如果您正在使用多个线程,请使用BufferedReader.

你可以通过谷歌搜索来轻松找到它.

这是一个很好的链接.