你好我使用的Apache共享FTP客户端,我想展示的FTP命令,当我使用changeWorkingDirectory应该告诉我的FTP命令,它使用类似FTP客户端使用这样想:CODEOFCOMMAND CHD .....
或者当我上传文件就应该告诉我:CODEOFCOMMAND PUT ....
是否有可能做到这一点?
你好我使用的Apache共享FTP客户端,我想展示的FTP命令,当我使用changeWorkingDirectory应该告诉我的FTP命令,它使用类似FTP客户端使用这样想:CODEOFCOMMAND CHD .....
或者当我上传文件就应该告诉我:CODEOFCOMMAND PUT ....
是否有可能做到这一点?
您可以在找到它的Apache共享网常见问题 :
问:如何调试FTP应用程序?
答:您可以添加一个协议命令监听; 例如:
ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out), true));
-它的最重要的方面之一 Object Oriented Programming
隐藏从实施者的实现 (在这种情况下,程序员)。
-正如你正在使用Apache's commons library
为ftp
,你被允许使用的功能,是作为实现是隐藏的。
这里也需要它的人:
首先做的:
redirectSystemStreams();
ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out), true));
但因为我使用的GUI一个JTextArea,我需要输出有我的帽子将输出重定向我做到了通过创建这些方法(用你的TextArea替换txtLog):
private void updateTextArea(final String text) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
txtLog.append(text);
}
});
}
private void redirectSystemStreams() {
OutputStream out = new OutputStream() {
@Override
public void write(int b) throws IOException {
updateTextArea(String.valueOf((char) b));
}
@Override
public void write(byte[] b, int off, int len) throws IOException {
updateTextArea(new String(b, off, len));
}
@Override
public void write(byte[] b) throws IOException {
write(b, 0, b.length);
}
};
System.setOut(new PrintStream(out, true));
System.setErr(new PrintStream(out, true));
}