我正在使用 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 机器。