2013-08-24 55 views
0

有没有办法,没有使用任何形式的gui包,没有System.out注入到提示的中间?分离System.Out消息和扫描器(Java)

该场景是一个线程化程序,您可以在该程序中向服务器发送和接收消息。

写入服务器时,您会收到来自服务器的消息。

“我writinMESSAGE从服务器G的消息”

所以你基本上最终看到类似的东西在你的控制台。

有没有办法来规避这个问题,从本质上分离提示和输入?

回答

2

你可以做这样的事情来缓冲输出临时:

ByteArrayOutputStream out = new ByteArrayOutputStream(); 
    PrintStream oldOut = System.out; 
    System.setOut(new PrintStream(out)); 

    // System.in read code 

    System.setOut(oldOut); 
    System.out.println(out.toString()); 

同为System.err

+0

我想这就是我要找的,谢谢! – Wuzseen

+0

+1如果您也添加了'out.reset()'调用,缓冲区就可以重新使用了。 –

+0

也许我说得太快了,我对system.out的调用在一个线程中,而system.in在另一个线程中。尽管我理解这个想法,但并不完全确定这会走向何方。 – Wuzseen