我想知道BufferedReader是如何工作的?为什么使用InputStreamReader呢?它与Scanner类有何不同,它也被用于用户输入? 哪两个比较好?BufferedReader如何在java中工作
-1
A
回答
4
的主要区别是
- 扫描仪是用于从流 的内容解析令牌,而只是BufferedReader中读取数据流,并没有做任何特殊 解析。 实际上,您可以将BufferedReader传递给扫描器,作为要解析的 字符的来源。
- 另一个区别是缓冲区的大小。扫描仪比BufferedReader有更多的缓冲区(1024字节,而不是 8192个字符)。虽然这可能听起来有相当大的差距,但扫描仪的缓冲区是,更多的是,这对于大多数任务来说足够了。
- 扫描仪也隐藏 IOExceptions而BufferedReader立即引发它们 ,这表明优点和缺点。
- 最后,当扫描器不是时,BufferedReader是同步的。如果您使用多个线程,请使用 BufferedReader。
你可能很容易发现这很容易搜索它。
Here's一个很好的链接。
3
从BufferedReader
的Javadoc读取从字符输入流文本,缓冲字符,从而提供字符,数组和行的高效读取。
从Scanner
一个简单的文本扫描仪可以解析使用正则表达式基本类型和字符串的javadoc。扫描器使用定界符模式将其输入分为令牌,默认情况下该定界符与空白相匹配。然后可以使用各种下一个方法将产生的令牌转换为不同类型的值。
基本上BufferedReader
有效地读取字符。
Scanner
在令牌中分割字符序列(类似于单词)并允许访问某些基本类型(或类)(如int, long, byte, double, String
...)。它是一个帮助类来解析输入,而不是缓冲它。
相关问题
- 1. 了解BufferedReader如何在Java中工作
- 2. InputStream,InputStreamReader和BufferedReader如何在Java中一起工作?
- 3. bufferedreader readline如何工作?
- 4. BufferedReader的read()方法如何工作?
- 5. 在java中如何工作?
- 6. 的BufferedReader工作在标准Java,但不是在Android的
- 7. 在Java中使用BufferedReader
- 8. 的BufferedReader无法在java中
- 9. 如何清除java中的BufferedReader
- 10. BufferedReader无法正常工作
- 11. java BufferedReader在Windows上工作,而不是mac
- 12. 如何使用BufferedReader(Java)中断读取操作?
- 13. java FileReader BufferedReader“FileNotFound”
- 14. Java BufferedReader Consoleparameter
- 15. Java + readline与BufferedReader
- 16. 如何工作的在Java
- 17. Java中的getInputStream + BufferedReader + FileReader
- 18. java中的Mark()/ Reset BufferedReader
- 19. 用BufferedReader按Java中的Anykey
- 20. Java中的BufferedReader问题
- 21. Java中的BufferedReader和InputStreamReader
- 22. 在Java中如何同步工作
- 23. 这将如何在Java中工作?
- 24. “import *”如何在Java中工作?
- 25. JMS如何在Java中工作?
- 26. 引用在Java中如何工作?
- 27. JComponent.paintImmediately()如何在Java Swing中工作?
- 28. 结构在Java中如何工作?
- 29. getServletName()如何在Java中工作?
- 30. java.util.prefs.Preferences如何在Java中工作?
http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html和http://docs.oracle.com/javase/7/docs/api/java/io /InputStreamReader.html和http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html – EpicPandaForce
如果你想知道;你为什么不试着找出答案?就像你自己一样,在来这里之前做一些事先的研究,并要求其他人花时间**教你**。 – GhostCat
我投票结束这个问题作为题外话,因为它既没有提出具体的编程问题,也没有表现出基本的努力水平。 – MarsAtomic