Javaには、ユーザーがリターンを押したときではなく、「押したときに」押したものを取得する可能性がありますか?
したがって、たとえば、ユーザーがABCを押してからCtrl+Zを押した場合、プログラムがそこで終了し(ストリームの終わりに達した)、その後、ユーザーがReturnキーを押した後ではないようにします。
Javaには、ユーザーがリターンを押したときではなく、「押したときに」押したものを取得する可能性がありますか?
したがって、たとえば、ユーザーがABCを押してからCtrl+Zを押した場合、プログラムがそこで終了し(ストリームの終わりに達した)、その後、ユーザーがReturnキーを押した後ではないようにします。
Ctrl+を押しても、Windowsは実際にはストリームを終了しませんZ。行の編集を続けることができ、アプリケーションは、を押したときにのみストリームの終わりを確認しますReturn。
これはUnixとは少し異なり、Ctrl+Dは現在のバッファリングされた行をアプリケーションに(改行なしで)送信し、アプリケーションは、aの後または別の+の後にCtrl+を押して空のバッファを送信した場合にのみ、ストリームの終わりを認識します。DReturnCtrlD
編集:Windowsでは、SetConsoleMode関数を使用して、単一の文字を読み取ることができる場合があります。しかし、あなたがそれをどのように呼ぶかはわかりません。3つの選択肢があるようです。