境外网站做网站涉黄,公司装修深圳,建设银行企业网银缴费,网店代理免费一件代发背景#xff1a;需要把服务器A中的文件拷贝至服务器B中#xff0c;要求使用FTP进行传输#xff0c;当文件传输未完成时文件是tmp格式的#xff0c;传输完毕后显示为原格式#xff08;此处是grib2#xff09;。
package org.example;import org.apache.commons.io.FileUt…背景需要把服务器A中的文件拷贝至服务器B中要求使用FTP进行传输当文件传输未完成时文件是tmp格式的传输完毕后显示为原格式此处是grib2。
package org.example;import org.apache.commons.io.FileUtils;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.example.FtpBean.FtpBean;
import org.example.FtpUtil.FtpUtil;import java.io.*;
import java.nio.charset.StandardCharsets;public class FtpSimple {public static void main(String[] args) throws IOException {// 连接服务器FTPClient ftpClient null;FTPClient ftpClient2 null;String rootDir /文件目录/;try {ftpClient new FTPClient();ftpClient.connect(IP地址);ftpClient.enterLocalActiveMode();ftpClient.login(用户名,密码);System.out.println(A建立连接);ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); // 设置二进制传输ftpClient.changeWorkingDirectory(rootDir);// 进入目标文件所在目录ftpClient2 new FTPClient();ftpClient2.connect(IP地址);ftpClient2.enterLocalActiveMode();ftpClient2.login(用户名,密码);System.out.println(B建立连接);ftpClient2.setFileType(FTPClient.BINARY_FILE_TYPE); // 设置二进制传输ftpClient2.changeWorkingDirectory(/文件目录/);System.out.println(切换至目录成功开始遍历...);FTPFile[] files ftpClient.listFiles();System.out.println(文件数目(包括2个系统文件)files.length);Integer flag_temp 0;// 遍历文件获得文件流for(FTPFile file: files) {String fileName file.getName();if(fileName.endsWith(grib2)) // 确定格式以免读取到系统文件{InputStream inputStream ftpClient.retrieveFileStream(rootDirfileName);try{ftpClient2.storeFile(fileName.tmp,inputStream);flag_temp 1; // 传输成功的文件数量}catch(Exception e) {System.out.println(e);}inputStream.close();ftpClient2.rename(fileName.tmp, fileName);ftpClient.completePendingCommand(); // 必须加不然只有第一个文件可以传输成功。if(flag_temp files.length - 2){System.out.println(传输完毕);}}}// 关闭ftp连接ftpClient.disconnect();ftpClient2.disconnect();}catch (Exception e){StringBuffer sb new StringBuffer(异常e.toString());System.out.println(sb);}}
}