gpt4 book ai didi

java - 这些读取用户输入的方式有什么区别?

转载 作者:搜寻专家 更新时间:2023-11-01 03:04:27 24 4
gpt4 key购买 nike

我遇到了这个话题 How to get basic user input for java尽管这个特定问题的答案已经足够,但我想知道为什么有这么多不同的方式来读取用户输入。 特别是这些读取用户输入的不同方式的优缺点是什么?什么时候使用其中一种方式比另一种方式更有意义?

这些是该帖子中提到的可能方法。

  1. Scanner class
  2. BufferedReader and InputStreamReader classes
  3. DataInputStream class
  4. Console class

最佳答案

它们的用途各不相同。我会尽力解释,但我并不完全理解文档,也没有广泛使用其中的每一个,所以如果您发现任何错误,请告诉我。

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

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

  3. DataInputStream是更通用的数据输入类。如果您只是想从流中读取基元——而不是直接读取单个位并组合相应的类型,这提供了一种简单的方法来为您完成这项工作。 This page是文档所说的获取有关这些方法实际工作原理的更多信息的地方。

  4. Console类明确用于c命令和l在线i界面(CLI)程序——也就是说,用于从安慰。就像Scanner -- 一个简单易学的类,用于执行基本任务。

简而言之,它们适用于不同的任务,您使用哪一个应该取决于您要做什么。

关于java - 这些读取用户输入的方式有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27601520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com