Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java中的FTPClient在FTP服务器中复制文件?_Java_Ftp_Apache Commons Net - Fatal编程技术网

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

如何使用Java中的FTPClient在FTP服务器中复制文件?,java,ftp,apache-commons-net,Java,Ftp,Apache Commons Net,我有一个CSV文件,我需要复制它并在同一路径中重命名它 我在FTP登录后尝试了以下操作: InputStream inputStream = ftpClient.retrieveFileStream(cvs_name +".csv"); ftpClient.storeFile(cvs_name2 + ".csv",inputStream); 但是当我在服务器上验证文件时,它是空的。如何复制并重命名文件 我相信您的代码无法工作。您不能通过单个FTP连接同时下载和上载文件 您有两个选择: 首先完

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

我在FTP登录后尝试了以下操作:

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

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

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

您有两个选择:

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

    已接受的答案显示“到内存”解决方案。注意
    outputStream.toByteArray()
    调用

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

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

这个问题已经得到了回答,我已经看到了,但是如果它在不同的目录中,我想如果我在同一个目录中使用它,它会覆盖原始文件,而这不是我需要的。我在服务器上仍然有一个空文件****只有第一个选项有效,第二个没有,如果你编辑你的答案会更好,我想是的!