我正在尝试将任何打印到控制台中的内容并将其存储为字符串。我必须能够挂接到System.out.println方法作为错误,并且除了我之外的任何人创建的任何东西必须最终在控制台中。我已经尝试使用扫描仪,但这只是用于键入控制台,我阅读管道上的文档,但据我了解,你仍然需要提供管道数据而不是管道从控制台获取它。有谁知道我需要用什么来从控制台打印字符串?
答案 0 :(得分:0)
您可以将控制台打印件重定向到您自己的流,请参阅此answer!
答案 1 :(得分:0)
我使用了Joacim Ericsson的资源来解决我的问题。首先,我为我的文本区域创建了一个输出流,这是我的数据。
public class ConsoleRedirection extends OutputStream{
private JTextArea textArea;
public ConsoleRedirection(JTextArea textArea) {
this.textArea = textArea;
}
@Override
public void write(int b) throws IOException {
textArea.append(String.valueOf((char)b));
}
}
然后我使用输出流创建了一个打印流,并将System.out设置为我的自定义打印流。
PrintStream printStream = new PrintStream(new ConsoleRedirection(console));
System.setOut(printStream);
System.setErr(printStream);