要在 Java 中获取用户输入,哪种方法更好?
reader = new BufferedReader(new InputStreamReader(System.in));
或使用控制台-->Console c = System.console();
两者之间有什么区别以及要使用哪一个。或者除了这两种方法还有其他更好的方法吗?
要在 Java 中获取用户输入,哪种方法更好?
reader = new BufferedReader(new InputStreamReader(System.in));
或使用控制台-->Console c = System.console();
两者之间有什么区别以及要使用哪一个。或者除了这两种方法还有其他更好的方法吗?
最近在 Java (Java 6) 中引入了控制台,以便更轻松地读取和写入命令行。因此,我会使用控制台。
我建议您使用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,即使您无法从标准输入读取:
echo 123 | java Test
如果测试使用控制台,它将无法工作。所以用户必须从控制台输入。