在Java中获取控制台输入的最佳方法是什么?

时间:2012-01-26 06:58:09

标签: java

使用Java获取输出非常简单,因为您可以使用System.out.print等。

另一方面,输入似乎有点不同。有些人推荐java.util.Scanner,而其他人则推荐java.io.BufferedReader,我相信还有很多其他建议。上述两种方法最常用。

似乎都没有提供非常好的选择(在我看来)。那么,有没有更好的方法从Java控制台窗口获取输入?如果没有,我应该选择哪个?

6 个答案:

答案 0 :(得分:5)

我认为,扫描仪类很有帮助。 例如,使用BufferedReader,您必须一次读取一行并解析它的值。 但是在扫描程序中,你可以使用nextInt()方法等获得整数。

答案 1 :(得分:5)

我觉得Scanner在两方面很有帮助,

1) you can get input from command prompt and infuture if you want to change to file system, it will be quick

2) While reading integer inputs you don't need to parse

。我更喜欢Scanner。

答案 2 :(得分:1)

扫描仪很方便,但它比BufferedReader慢。

答案 3 :(得分:0)

对于控制台输入,他们引入了自JAVA 1.6以来的新方式

System.console() //using java.io.*

它有readPassword()的选项(不会在控制台上显示输入的字符,也不会缓存它)和readLine()

扫描程序是最简单的选项,可以减少输入,但是当你从控制台处理这么多输入时,它会比console()bufferedReader()等其他选项慢一些。

我个人喜欢bufferedReader()因为它适用于早期版本和非交互式环境,而且速度更快。

console()方法在非交互式环境(即IDE)中不起作用。

答案 4 :(得分:0)

如果您使用的是Java 1.6或最新版本,我更喜欢使用控制台。

这是简单的一个班轮。

String str = System.console().readLine();

答案 5 :(得分:0)

BufferedReader相当复杂,使用时有点长,但它必须比扫描仪更快, 如果要出于竞争性编码目的输入输入,则必须使用BufferedReader。另外,您可以在此处进行多种检查。https://www.geeksforgeeks.org/fast-io-in-java-in-competitive-programming/