1

要在 Java 中获取用户输入,哪种方法更好?

reader = new BufferedReader(new InputStreamReader(System.in));

或使用控制台-->Console c = System.console();

两者之间有什么区别以及要使用哪一个。或者除了这两种方法还有其他更好的方法吗?

4

4 回答 4

2

最近在 Java (Java 6) 中引入了控制台,以便更轻松地读取和写入命令行。因此,我会使用控制台。

于 2011-01-05T09:22:25.947 回答
1

我建议您使用Scanner类从控制台获取用户输入

Scanner in = new Scanner(System.in);

in.next();
int i = in.nextInt();
float f = in.nextFloat();
double d = in.nextDouble();    
String s = in.nextLine();

和其他漂亮的方法

但在这两者之间我推荐你控制台

于 2011-01-05T09:36:32.213 回答
0

它们几乎相同,但是,控制台具有安全读取用户信息(例如密码)的附加方法,并返回更直观的结果,以判断底层平台是否确实支持控制台操作或以非交互方式启动环境

于 2011-01-05T09:28:09.870 回答
0

恕我直言,它们完全不同。正如文档所说:

访问与当前 Java 虚拟机关联的基于字符的控制台设备(如果有)的方法。

所以实现是特定于操作系统的,而不是独立于平台的(可能有也可能没有)。

使用Consol,即使您无法从标准输入读取:

echo 123 | java Test

如果测试使用控制台,它将无法工作。所以用户必须从控制台输入。

于 2011-01-05T09:48:37.703 回答