ftp 实现文件的上传下载以及列出文件列表Java代码(未测试)
2016-07-22 01:59
1006 查看
public class FtpUtil { private Log log = LogFactory.getLog(getClass()) ; private String userName; private String password; private String ip; private int port; private FTPClient ftpClient = null; private FTPSClient ftps = null ; //构造方法初始化类 public FtpUtil(String userName, String password, String ip, int port) { this.userName = userName; this.password = password; this.ip = ip; this.port = port; } //连接ftp public boolean connectServer() throws Exception{ boolean flag = true; if (ftpClient == null) { ftpClient = new FTPClient(); ftpClient.connect(ip,port); log.info("Connected to " + ip); log.info(ftpClient.getReplyString()); int reply = ftpClient.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftpClient.disconnect(); log.warn("FTP server refused connection."); return false ; } boolean bok = ftpClient.login(userName, password); if (!bok) { try { ftpClient.disconnect() ; ftpClient = null ; } catch (Exception e) { } throw new Exception("can not login ftp server") ; } ftpClient.setBufferSize(1024); ftpClient.setControlEncoding("GBK"); ftpClient.setFileType(FTP.BINARY_FILE_TYPE); ftpClient.setDataTimeout(120000); ftpClient.enterLocalPassiveMode(); ftpClient.setUseEPSVwithIPv4(false); } return flag; } //列出所有文件内容 public List<String> listRemoteAllFiles(String path) throws Exception { ftpClient.enterLocalPassiveMode(); FTPFile[] files = ftpClient.listFiles(path, new FTPFileFilter() { @Override public boolean accept(FTPFile file) { if (file.isFile()) return true ; return false ; }}) ; List<String> list = new ArrayList() ; for (FTPFile file : files) { list.add(file.getName()) ; } return list ; } public void closeConnect() { try { if (ftpClient != null) { ftpClient.logout(); ftpClient.disconnect(); } } catch (Exception e) { } } //下载文件 public boolean downloadFile(String remotePath, String fileName, String localPath) throws Exception { FileOutputStream fos = null ; try { File localFile = new File(localPath, fileName); fos = new FileOutputStream(localFile); ftpClient.enterLocalPassiveMode(); ftpClient.changeWorkingDirectory(remotePath) ; boolean bok = ftpClient.retrieveFile(fileName, fos); fos.close() ; fos = null ; return bok ; } catch (Exception e) { throw e ; } finally { if (fos!=null) { try { fos.close() ; fos = null ; } catch (Exception e2) { } } } } //上传文件 public boolean uploadFile(String remotePath, String filename, String localFilePath) throws Exception { FileInputStream fis = null ; try { fis = new FileInputStream(new File(localFilePath)); ftpClient.enterLocalPassiveMode(); ftpClient.changeWorkingDirectory(remotePath); boolean bok = ftpClient.storeFile(filename, fis); fis.close(); fis = null ; return bok ; } catch (Exception e) { throw e ; } finally { if (fis!=null) { try { fis.close() ; fis = null ; } catch (Exception e2) { } } } } //删除文件 public boolean removeFile(String remotePath, String filename) throws Exception { ftpClient.changeWorkingDirectory(remotePath); boolean bok = ftpClient.deleteFile(filename) ; return bok ; } }
相关文章推荐
- 套路重写Java的equals函数
- java中常用的时间处理类TimeUtil
- java lisi乱序、排序
- Java字符串工具类(未测试)
- 算法--列(java实现)
- 统计项目源码行数的Java代码
- java实现鼠标和键盘动作后台监听(未测试)
- 利用Gson实现Json串和Java Bean互转(未测试)
- Java实现简单的截图工具(未测试)
- java zip 工具类(未测试)
- Java通用的Excel文件生成工具类,支持生成文件和浏览器直接下载(未测试)
- java在线预览txt、word、ppt、execel,pdf代码(未测试)
- java实现发送邮件可多个附件内嵌图片-commons-email使用(未测试)
- Java 批量随机生成身份证号码(未测试)
- 简单的java爬虫抓取网页实现代码(未测试)
- java 汉字转化为拼音工具类(未测试)
- JAVA 比较两张图片的相似度的代码(未测试)
- SpringMVC多文件上传实例(未测试)
- Java加密解密DESUtil、TripleDESUtil(未测试)
- 算法---栈(java实现)