如何用Java从控制台读取单个字符(用户键入它时)?

如何用Java从控制台读取单个字符(用户键入它时)?

当用户在Java中输入一个字符时,是否有一种从控制台读取单个字符的简单方法?有可能吗?我尝试过这些方法,但它们都在等待用户按下进入钥匙:

char tmp = (char) System.in.read();char tmp = (char) new InputStreamReader(System.in).read ();
char tmp = (char) System.console().reader().read();           // Java 6

我开始认为这个系统.不知道用户的输入进入是按下的。


小唯快跑啊
浏览 1241回答 4
4回答

慕标琳琳

您想要做的是将控制台置于“RAW”模式(行编辑绕过,不需要Enter键),而不是“熟透”模式(按Enter键进行编辑)。在UNIX系统上,“stty”命令可以更改模式。如果您的程序必须是基于控制台的,您必须将终端从行模式切换到字符模式,并记住在程序退出之前恢复它。在整个操作系统中,没有一种可移植的方法来做到这一点。其中一个建议是使用JNI。再说一次,这不是很便携。

慕虎7371278

没有从Java控制台读取原始字符的可移植方式。以上介绍了一些平台相关的解决方案。但是要真正可移植,您必须放弃控制台模式,使用窗口模式,例如AWT或Swing。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java