Java 这些读取用户输入的方式有什么不同?

Java 这些读取用户输入的方式有什么不同?,java,user-input,Java,User Input,我遇到了这个话题,虽然这个问题的答案已经足够了,但我想知道为什么在用户输入中有这么多不同的阅读方式尤其是这些不同的用户输入读取方法的优缺点是什么?什么时候使用一种方法而不是另一种方法才有意义 这些都是文章中提到的可能的方法 扫描器类 BufferedReader和InputStreamReader类 DataInputStream类 控制台类 Scanner是Java中最友好的输入阅读器,我喜欢它! BufferedReader和InputStreamReader都是用于输入读取器的,还可以用于

我遇到了这个话题,虽然这个问题的答案已经足够了,但我想知道为什么在用户输入中有这么多不同的阅读方式尤其是这些不同的用户输入读取方法的优缺点是什么?什么时候使用一种方法而不是另一种方法才有意义

这些都是文章中提到的可能的方法

  • 扫描器类
  • BufferedReader和InputStreamReader类
  • DataInputStream类
  • 控制台类

  • Scanner是Java中最友好的输入阅读器,我喜欢它! BufferedReader和InputStreamReader都是用于输入读取器的,还可以用于归档,例如将可读输入写入文件等。。 我不使用另外两个,因为最重要的IO类是Scanner和BufferedReader ...
    您也可以使用System.IO读取输入,但我更喜欢自己的扫描仪

    它们都用于不同的用途。我会尽我最大的努力解释,但是我没有完全理解这些文档,而且我也没有广泛使用它们,所以如果你发现任何错误,请告诉我

  • Scanner
    类旨在处理几乎任何流中的输入,并为开发人员提供一种友好、简单的方法来管理它,而无需学习太多的类。这是相当基本的,但大多数情况下,这已经足够了——例如,如果您只想以简单易学的方式获取用户输入,
    Scanner
    就是您想要的

  • BufferedReader
    类旨在以牺牲内存为代价快速读取文件。它是对其他更简单类的包装,比如
    FileInputStream
    (从技术上讲,任何
    扩展InputStream
    )的类,通过缓冲接下来的几个字节并从该数组中读取,而不是直接从流中读取,并且只在流到达缓冲区末尾时从流中读取。如果您对速度比内存使用率低更感兴趣,那么您会希望这样——尽管除非您明确告诉它,否则它实际上不会占用更多内存

  • DataInputStream
    是一个更通用的数据输入类。如果您只想从流中读取原语,而不是直接读取单个位并组合相应的类型,那么这为您提供了一种简单的方法。这是文档中提到的关于这些方法如何实际工作的更多信息

  • Console
    类明确用于commandlineiinterface(CLI)程序——也就是说,用于从控制台读取数据和向控制台写入数据。它就像扫描器一样,是一门简单易学的课程,用于完成基本任务

  • 在一句话中,它们用于不同的任务,你使用哪一个取决于你想做什么。

    看看这些问题: