如何使用Java中的FTPClient在FTP服务器中复制文件?

时间:2016-06-06 17:53:30

标签: java ftp apache-commons-net

我有一个CSV文件,我需要将其复制并在同一路径中重命名

我在FTP登录后试过这个:

InputStream inputStream = ftpClient.retrieveFileStream(cvs_name +".csv");
ftpClient.storeFile(cvs_name2 + ".csv",inputStream);

但是当我验证服务器上的文件时,它是空的。如何复制文件并重命名?

1 个答案:

答案 0 :(得分:2)

我相信你的代码无法运作。您无法同时通过单个FTP连接下载和上载文件。

您有两种选择:

  • 首先完全下载文件(到临时文件或内存)。

    How to copy a file on the ftp server to a directory on the same server in java?的接受答案显示了记忆"解。请注意outputStream.toByteArray()来电。

  • 打开两个连接(FTPClient的两个实例)并在实例之间复制文件。

    InputStream inputStream = ftpClient1.retrieveFileStream(cvs_name + ".csv");
    ftpClient2.storeFile(cvs_name2 + ".csv", inputStream);