我有一个程序将输出打印到命令提示符,但假设发生这种情况。
while(true){System.out.println(“Something”); }
然后在另一个线程中,程序将从用户那里获得输入。
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try { input = reader.readLine(); } catch ( Exception e ) { /* Do Nothing */ }
现在,有两个线程同时被执行,如果我尝试输入 Hello World ,就会发生这种情况;
Something
Something
Something
Something
HSomething
elloSomething
Something W
Something orl
Something d
Something
有没有办法使用户输入的内容仍然在底部,我希望它是这样的;
Something
Something
Something
Something
Something
Something
Something
Hello World
Something
P.S:读者仍然可以告诉用户键入的内容以及打印的程序。但是用户会发现很难分辨哪个是哪个。 P.P.S:假设它是这样的;
Something
Something
Hello World
Something
因为程序在用户按下Enter后立即打印;我希望你知道我想要什么。
答案 0 :(得分:0)
你没有"有一个程序将输出打印到命令提示符"。
您有一个写入控制台的程序。
控制台的目的是为您提供一种发送顺序(电传打字式)文本流的简便方法。
对于比这更复杂的事情,你的程序必须不写入控制台,它必须使用GUI。
Google AWT和JavaFX即将开始。
注意:回到现有的唯一存在的东西是文本终端,然而计算行业的需求已经发展到需要更多花哨的方式来发送文本而不是电传类型,各种hacky发明了古怪古怪的clanky方法,将光标定位在屏幕上的特定位置,甚至指定文本的颜色。他们大多通过发出特殊的控制字符序列来工作。在当今的大多数系统上,默认情况下您获得的控制台窗口不支持任何此类控制字符。但是即使它确实如此,你明确地要求一位专业的java程序员"的帮助(所以你可能不关心黑客的意见?)并且专业人士有义务建议你留下来从过时的,过于复杂的,神秘的,以及最终的黑客行事方式中清除。