如何将Eclipse(消息)控制台的输出保存到文件中?

时间:2018-07-17 12:00:05

标签: java eclipse rcp

我有一个实现Eclipse控制台的程序,如下所示:

FAQ How do I write to the console from a plug-in?

然后,我使用(MessageConsole) mainConsole).newMessageStream()将Jsch Channel的OutputStream重定向到新控制台。

PrintStream printStream = new PrintStream(((MessageConsole) mainConsole.newMessageStream());

JSch jsch = new JSch();
Session session = jsch.getSession(username, host, port);
Channel channel = session.openChannel("shell");
channel.setOutputStream(printStream);

现在我想将Jsch Channel的相同OutputStream重定向到文件,问题是已经重定向到我的控制台。

我如何同时做到这一点。

谢谢。

1 个答案:

答案 0 :(得分:2)

如果只是输出文本,可以尝试:

PrintWriter out = new PrintWriter("filename.txt");

然后,将String写入其中,就像写入任何输出流一样:

out.println(text);

您将一如既往地需要异常处理。完成写作后,请务必调用out.close()。

如果您使用的是Java 7或更高版本,则可以使用“ try-with-resources语句”,该语句将在完成处理后自动关闭PrintStream(即退出该块),如下所示:

try (PrintWriter out = new PrintWriter("filename.txt")) {
    out.println(text);
}

您仍然需要像以前一样显式抛出java.io.FileNotFoundException。