用于Java I / O的InputStreamReader或控制台

时间:2011-01-05 09:20:54

标签: java console bufferedinputstream

用Java获取用户输入哪种方法更好?

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

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

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

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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();

和其他漂亮的方法

但在这两者之间,我建议您使用控制台

答案 2 :(得分:0)

它们几乎相同,但是,控制台还有其他方法可以安全地从用户那里读取信息(例如密码),并返回更直观的结果,以确定底层平台是否确实支持控制台操作或是否在非互动环境

答案 3 :(得分:0)

恕我直言,他们完全不同。正如医生所说:

  

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

因此,实现是特定于操作系统的,而不是平台独立的(可能存在或不存在)。

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

echo 123 | java Test

如果Test正在使用Console,它将无法正常工作。因此用户必须从控制台提供输入。