import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; import org.apache.log4j.Logger; /** */ /** * <p>Title: FtpHandle</p> * * <p>Description: ftp客户端类(使用org.apache.commons.net.ftp包),方便</p> * * <p>Copyright: Copyright (c) 2006</p> * * <p>Company: wri</p> * * @author javatang * @version 1.0 */ public class FtpHandle ... { private Logger log = Logger.getLogger(FtpHandle.class); // ftp客户端 FTPClient ftpClient; // 文件列表 FTPFile[] fileList; /** *//** */ /** *//** * @server:服务器名字 * @user:用户名 * @password:密码 * @path:服务器上的路径 * */ public void connectServer(String server, String user, String password, String path) ...{ try ...{ ftpClient = new FTPClient(); ftpClient.connect(server); ftpClient.login(user, password); log.info(" login success !!! "); if (path.length() != 0) ...{ boolean flag = ftpClient.changeWorkingDirectory(path); if (flag) ...{ log.debug(" set working directory successful !!! "); } } } catch (IOException e) ...{ log.info(" not login !!! "); log.error(e.getMessage()); } } /** *//** */ /** *//** * 关闭连接 * */ public void closeConnect() ...{ try ...{ ftpClient.disconnect(); log.info(" disconnect success !!! "); } catch (IOException e) ...{ log.info(" not disconnect !!! "); log.error(e.getMessage()); } } /** *//** * 上传本地文件到服务器 * * */ public void upload() ...{ String uploadFileName = " c:/work "; try ...{ File uploadFile = new File(uploadFileName); File[] fileList = uploadFile.listFiles(); if(fileList==null)...{ return; } for (int i = 0; i < fileList.length; i++) ...{ FileInputStream fis = new FileInputStream(fileList[i]); String destinationFileName = fileList[i].getName(); String tempFileName = " temp_ " + destinationFileName; // 上传本地文件到服务器上(文件名以'temp_'开头,当上传完毕后,名字改为正式名) boolean flag = ftpClient.storeFile(tempFileName, fis); if (flag) ...{ log.info(" upload success !!! "); // 上传完毕后,名字改为正式名(该方法在远程有效,本地不用此方法,而用renameTo方法) ftpClient.rename(tempFileName, destinationFileName); } // 关闭文件流 fis.close(); } } catch (IOException e) ...{ log.info(" not upload !!! "); log.info(e.getMessage()); } } /** *//** * 从服务器下载文件到本地 * */ public void download() ...{ try ...{ fileList = ftpClient.listFiles(); ftpClient.makeDirectory(" zjp "); // 在服务器上创建目录(测试用,可删除) ftpClient.removeDirectory(" zjp "); // 在服务器上删除词此目录,注意该目录下为空(测试用,可删除) for (int i = 0; i < fileList.length; i++) ...{ String name = fileList[i].getName(); File temp_file = new File(" c:/ " + " temp_ " + name); File dest_file = new File(" c:/ " + name); FileOutputStream fos = new FileOutputStream(temp_file); // 从服务器上下载文件 boolean flag = ftpClient.retrieveFile(name, fos); // 关闭文件流 fos.close(); if (flag) ...{ // 本地rename,前提是先关闭文件流 temp_file.renameTo(dest_file); log.info(" download success !!! "); } } } catch (IOException e) ...{ log.info(" not download !!! "); log.error(e.getMessage()); } } /** *//** * 测试函数 * */ public static void main(String[] args) ...{ FtpHandle fd = new FtpHandle(); fd.connectServer(" 127.0.0.1 ", " iss ", " iss ", " /home/iss/connectCDR "); fd.upload(); fd.download(); fd.closeConnect(); }}