【发布时间】:2012-05-22 17:49:10
【问题描述】:
我正在使用 Apache commons net FTPClient 来分发文件作为批处理作业的一部分。客户端是封装的,但大致我发出以下方法调用(为简洁起见,我省略了错误处理、流处理等):
FTPClient client = new FTPClient();
client.connect("127.0.0.1", 22);
client.login("user", "password");
client.setFileType(FTP.BINARY_FILE_TYPE);
client.changeWorkingDirectory("path/");
client.storeFile("file1.txt", new ByteArrayInputStream("hello world".getBytes()));
client.disconnect();
当我发出上述命令时,以下命令被发送到 FTP 服务器:
USER zoor
PASS ********
TYPE I
CWD path/
PORT 127,0,0,1,229,72
STOR file1.txt
这很好用。但是,现在我需要将文件发送到不支持CWD 或STOR 而是分别依赖CD 和PUT 的遗留系统。
现在我的问题是,如何让 FTPClient 使用这些命令?
我可以使用sendCommand 方法发送CD 命令,但我不确定如何使用 PUT 命令正确(正确)执行此操作(因为我还必须发送文件数据)。
注意:我意识到有比 FTP 更好的方法来分发这样的文件,但不幸的是,我的双手被束缚了。收件人正在使用 FTP,并且不愿意更改。
更新:旧系统是 AS/400 机器。
【问题讨论】:
标签: java ftp apache-commons-net