如何使用 Java 中的 FTP 客户端复制 FTP 服务器中的文件?

How to copy a file in FTP server using FTPClient in Java?

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

我在 FTP 登录后试过这个:

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

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

我认为您的代码无法运行。您不能同时通过单个 FTP 连接下载和上传文件。

您有两个选择:

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

    How to copy a file on the ftp server to a directory on the same server in java? 的已接受答案显示了 "to memory" 解决方案。注意 outputStream.toByteArray() 调用。

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

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