将我的输出重定向到textarea

9gm1akwq  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(307)

我正在用hadoop在eclipse上用java进行数据分析,我在eclipse上得到了如下图所示的输出日志,我们如何将它重定向到文本区域。。

jgovgodb

jgovgodb1#

试试这个:

public class JTextAreaOutputStream extends OutputStream {

private JTextArea destination;

public JTextAreaOutputStream(JTextArea destination) {
    if (destination == null)
        throw new IllegalArgumentException ("Destination is null");

    this.destination = destination;
}

@Override
public void write(int b) throws IOException {
    write (new byte [] {(byte)b}, 0, 1);
}

@Override
public void write(byte[] buffer, int offset, int length) throws IOException
{
    final String text = new String (buffer, offset, length);
    SwingUtilities.invokeLater(new Runnable ()
        {
            @Override
            public void run() 
            {
                destination.append (text);
            }
        });
}
}

然后将文本区域重定向如下:

public void setSystemOutRedirect() {
    JTextAreaOutputStream out = new JTextAreaOutputStream (textAreaUpgraderLog);
    System.setOut (new PrintStream(out));
    System.setErr(new PrintStream(out));
}
gc0ot86w

gc0ot86w2#

这些大部分是计数器和进程,所以,看看这篇文章和jobclient的api。
另外,我想你会发现这个帖子非常有用。

dxxyhpgq

dxxyhpgq3#

只需在程序开头使用以下代码段。

File file = new File("D:/out.txt");
        FileOutputStream fos = new FileOutputStream(file);
        PrintStream ps = new PrintStream(fos);
        System.setErr(ps);

然后所有标准错误将重定向到 D:/out.txt 文件。对于重定向标准输出,只需使用 System.setOut(ps)

相关问题