如何在 Java 中使用 FTPClient 复制 FTP 服务器中的文件?
我有一个 CSV 文件,我需要复制它并在同一路径中重命名它.
I have a CSV file, and I need to copy it and rename it in the same path.
我在 FTP 登录后尝试了这个:
I tried this after the FTP login:
InputStream inputStream = ftpClient.retrieveFileStream(cvs_name +".csv");
ftpClient.storeFile(cvs_name2 + ".csv",inputStream);
但是当我在服务器上验证文件时,它是空的.如何复制文件并重命名?
But when I verify the file on the server, it's empty. How can I copy a file and rename it?
推荐答案
我相信你的代码不能工作.您不能同时通过一个 FTP 连接下载和上传文件.
I believe your code cannot work. You cannot download and upload a file over a single FTP connection at the same time.
你有两个选择:
首先将文件完全下载(到临时文件或内存中).
Download the file completely first (to a temporary file or to a memory).
如何将 ftp 服务器上的文件复制到 java 中同一服务器上的目录?显示记忆"解决方案.注意 outputStream.toByteArray()
调用.
The accepted answer to How to copy a file on the ftp server to a directory on the same server in java? shows the "to memory" solution. Note the outputStream.toByteArray()
call.
打开两个连接(FTPClient
的两个实例)并在实例之间复制文件.
Open two connections (two instances of the FTPClient
) and copy the file between the instances.
InputStream inputStream = ftpClient1.retrieveFileStream(cvs_name + ".csv");
ftpClient2.storeFile(cvs_name2 + ".csv", inputStream);
相关文章