如何立即打印 intputstream 读取的内容?

How can I print what is read by intputstream immediately?

这是我的代码:

import java.io.DataInputStream;
import java.io.InputStream;

public class TestClass {
    public static void main(String[] args) throws Exception {
        InputStream inputStream = new DataInputStream(System.in);
        int read = inputStream.read();
        System.out.println(read);
    }
}

当我 运行 时,此代码 inputStream 将等待来自标准输入的输入,这很好。当我在键盘中键入 'a' 时,我希望 97 立即在控制台中打印出来。然而,这段代码要求我在输入 'a' 后点击 'Enter'。

如果我简单地点击 'Enter' 整数 10 将显示在控制台中。

如何修改代码,以便在键盘上按下 'a' 时立即看到整数 97?在这种情况下,Enter 按钮有什么特别之处?为什么我需要按 Enter 键?

遗憾的是,Java 中的控制台无法执行此操作。无论你是使用java.util.Scanner还是某种java.io.InputStream(包括直接System.in),Enter键始终是接收输入的触发器。

考虑使用图形用户界面,例如 Swing (definition on wikipedia), where you can fulfill your input requirements by hooking up a KeyListener 文本框。