有没有一种方法可以比扫描仪类更“专业”地读取输入?

时间:2019-09-02 07:05:06

标签: java java.util.scanner

我的两位教授告诉我,Java Scanner类本来是一个简单的学习工具,但是有更专业的方法来读取输入。这是真的?如果可以,可以举个例子吗?

2 个答案:

答案 0 :(得分:2)

正如您在学习环境中提到的Java Scanner类一样,我假设您正在谈论从控制台读取用户输入的内容。

我不知道Scanner类是否出于学习目的而创建,但是肯定有更好的方法从控制台读取输入。

在正常情况下,扫描器类可能适合您,但是例如,如果您需要读取与程序上的某些事件完全同步的真正快速或不规则的输入,则它可能会给您带来一些问题。例如, BufferedReader 类将是此处的最佳解决方案。

您可以阅读有关“主题” here的信息。

缓冲区基本上允许您以“任何”速度接收信息并以恒定的流量进行检索。最简单的缓冲示例是Youtube: 您正在通过Internet下载视频的内容,并且Internet速度并不总是恒定的。发生这种情况时,如果您直接“复制”正在下载的内容,则视频的复制速度可能会提高2倍,或者卡住并暂停半秒钟,依此类推。 解决方案是在缓冲区中存储从YouTube服务器下载的所有数据,然后以恒定速度对其进行处理,以使视频按预期的方式进行复制。

我希望解释清楚且有用,我仍在提高我的英语水平!

答案 1 :(得分:1)

您可以使用

BufferedReader br =新的BufferedReader(新的InputStreamReader(System.in)); 字符串str1 = br.readLine();