如何在java中将输出作为字符串输出到控制台

时间:2016-05-02 06:30:20

标签: java

我正在尝试将任何打印到控制台中的内容并将其存储为字符串。我必须能够挂接到System.out.println方法作为错误,并且除了我之外的任何人创建的任何东西必须最终在控制台中。我已经尝试使用扫描仪,但这只是用于键入控制台,我阅读管道上的文档,但据我了解,你仍然需要提供管道数据而不是管道从控制台获取它。有谁知道我需要用什么来从控制台打印字符串?

2 个答案:

答案 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);