将System.setOut设置为默认控制台和自定义输出

时间:2016-10-27 06:20:09

标签: java string methods console output

我有一段这样的代码:

System.setOut(new PrintStream(new OutputStream()
{

    @Override
    public void write(int b) throws IOException
    {
        String str = String.valueOf((char) b);
        txtAreaConsole.appendText(str);
    }
}));

但这意味着,我不再在控制台中获得任何信息。 所以我正在寻找这样的东西:

System.setOut(new PrintStream(new OutputStream()
{

    @Override
    public void write(int b) throws IOException
    {
        String str = String.valueOf((char) b);
        txtAreaConsole.appendText(str);
        defaultConsole.appendText(str); //THIS
    }
}));

有类似的东西吗?感谢

2 个答案:

答案 0 :(得分:1)

当然可以,你只需要"保存"并重用现有的System.out。

我不知道你的代码中有什么txtAreaConsole,所以我刚刚制作了一个" MyConsole"在以下示例中:

A* a_ptr;    

DWORD a_ptr_address = (DWORD)a_ptr;
A* a_recasted_ptr = (A*)a_ptr_address;

//Display Result
char debugString[20];
snprintf(debugString, 20, "%08x", &a_ptr);
MessageBox(NULL, (const char*)debugString, NULL, NULL);
snprintf(debugString, 20, "%08x", &a_recasted_ptr);
MessageBox(NULL, (const char*)debugString, NULL, NULL);

答案 1 :(得分:0)

正如安德烈亚斯建议的那样,来自TeeOutputStream的{p> Apache Commons IO对我来说是最好的方式。