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

用Java获取用户输入哪种方法更好?
reader = new BufferedReader(new InputStreamReader(System.in));
要么 通过使用控制台 - >
Console c = System.console();
两者之间的区别是什么,使用哪一个。或者除了这两个以外还有其他更好的方法吗?     
已邀请:
最近向Java(Java 6)引入了控制台,以便更轻松地读取和写入命令行。因此,我会使用Console。     
我建议您使用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();
和其他美丽的方法 但是在这两者之间我推荐你控制台     
它们几乎相同,但是,控制台还有其他方法可以安全地从用户那里读取信息(例如密码),并返回更直观的结果,以确定底层平台是否确实支持控制台操作或是否以非交互方式启动环境     
恕我直言,他们是完全不同的。正如文件所说:   访问基于字符的方法   控制台设备(如果有)关联   使用当前的Java虚拟机。 因此,实现是特定于操作系统而不是平台独立的(可能存在或不存在)。 使用Consol,即使你无法从stdin读取:
echo 123 | java Test
如果Test正在使用Console,它将无法正常工作。因此用户必须从控制台提供输入。     

要回复问题请先登录注册