Java I/O 的 InputStreamReader 或控制台

发布于 2024-10-10 13:41:06 字数 229 浏览 8 评论 0原文

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

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

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

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

To get user input in Java which is the better method?

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

or
by use of Console--> Console c = System.console();

what is the difference between the two and which one is to be used. Or is there any other better method other than these two?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

孤檠 2024-10-17 13:41:06

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

Console was introduced recently to Java (Java 6) to make reading and writing to the command line easier. Therefore, I would use Console.

ゃ懵逼小萝莉 2024-10-17 13:41:06

我建议您 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();

和其他漂亮的方法,

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

I suggest you Scanner class to get user input from console

Scanner in = new Scanner(System.in);

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

and other beautiful methods

but between these two I recommend you Console

落墨 2024-10-17 13:41:06

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

they are pretty much the same, however, the Console has additional methods for securely reading information from the user (eg. password) and returns a more intuitive result for whether the underlying platform actually does support console operations or is launched in a non-interactive environment

不可一世的女人 2024-10-17 13:41:06

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

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

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

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

echo 123 | java Test

如果测试使用控制台,它将无法工作。因此用户必须从控制台给出输入。

IMHO they are total diferent. As the doc says:

Methods to access the character-based
console device, if any, associated
with the current Java virtual machine.

So the implementation is OS specific and not platform independent (there could be or not).

With Consol even you can not read from stdin:

echo 123 | java Test

If Test is using Console it won't work. So the user MUST give input from the console.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文