我正在开发一个自制的控制台(API,带有GUI),想要使用我的控制台将程序A的输出传输到我的控制台类B,然后从中读取一个字符串(程序A的输出) .
我找到的所有答案都是关于围绕 ByteArrayOutputStream 等创建新的 PrintStream。
我之所以要这样做,是因为我想让代码对其他人来说尽可能简单(最佳解决方案:在程序中调用一种方法)。
如果程序员可以使用我的 API 实现这样的功能,那就太好了:
ConsoleAPI c = new ConsoleAPI();
c.setOutput(System.out);
System.out.println("Hello World!");
我不认为这是可能的,但也许确实如此。 :)
提前致谢!
最佳答案
System.out
是 PrintStream
类型的对象。
您可以像任何其他 PrintStream 对象一样在类之间传递它。
因此您的 ConsoleAPI.setOutput
方法需要采用 PrintStream
作为参数。
然后你就可以做你想做的事了。
http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html
关于java - 将 System.out 转移到另一个类并从中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22194645/