当用户在Java中键入时,是否有一种从控制台读取单个字符的简单方法?可能吗?我尝试过这些方法但他们都在等待用户按下回车键:
char tmp = (char) System.in.read();
char tmp = (char) new InputStreamReader(System.in).read ();
char tmp = (char) System.console().reader().read(); // Java 6
Run Code Online (Sandbox Code Playgroud)
我开始认为System.in在按下enter之前不知道用户输入.
我有一个用Java编写的控制台程序应该响应单键按下,但用户不按回车键.
我正在制作乒乓球..所以需要上下键来移动蝙蝠的东西.
欢迎替代方法!(除了制作GUI之外)
- 编辑:
我只打算在UNIX系统(OSX和Linux)上运行我的程序,所以我想我可以将终端设置为"原始"模式: stty raw
当我在运行程序之前将其输入控制台时,它可以工作!但我需要Java自动完成,所以我尝试了这个:
Runtime.getRuntime().exec("stty raw");
Run Code Online (Sandbox Code Playgroud)
它没有做任何事情......可能是因为JVM只是将它作为一个单独的进程运行而不是作为该终端中的进程运行.