java中ftp上传、下载、重命名、删除功能实现
来源:互联网 发布:java怎么开根号 编辑:程序博客网 时间:2024/05/17 01:02
与尼尔森数据对接使用了ftp技术,特别留下来作为备用。哎,弄完这个深知java遮掩的东西太多了,什么都是调用调用就完了,得去深入了解下底层东西。
package com.voole.util;import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import org.apache.commons.net.ftp.FTP;import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile;import org.apache.commons.net.ftp.FTPReply; import org.apache.log4j.Logger; public class FtpUtil { private static FTPClient ftpClient = new FTPClient(); private static String encoding = System.getProperty("file.encoding"); private static FtpUtil instance; Logger log = Logger.getLogger(FtpUtil.class); /** * 实例化FtpUtil * @return */ public synchronized static FtpUtil getInstance(){ if( instance == null ){ instance = new FtpUtil(); } return instance; } /** * 连接FTP服务器 */ public boolean login(String url, int port, String username, String password){ try { int reply; ftpClient.connect(url); // 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器,否则 ftp.connect(url, port);// 连接FTP服务器 ftpClient.login(username, password); // 登录 ftpClient.setControlEncoding(encoding); reply = ftpClient.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { // 检验是否连接成功 log.info("FTP连接失败"); ftpClient.disconnect(); return false; } log.info("FTP连接成功"); }catch (IOException e) { e.printStackTrace(); closeCon(); //关闭 } return true; } /** * Description: 向FTP服务器上传文件 * * @Version1.0 * @param url * FTP服务器hostname * @param port * FTP服务器端口 * @param username * FTP登录账号 * @param password * FTP登录密码 * @param path * FTP服务器保存目录,如果是根目录则为“/” * @param filename * 上传到FTP服务器上的文件名 * @param input * 本地文件输入流 * @return 成功返回true,否则返回false */ public boolean uploadFile(String ftpPath,String filePath,String fileName) { boolean result = false; try { if( ftpClient!=null ){ FileInputStream input = new FileInputStream(new File(filePath+fileName)); boolean change = ftpClient.changeWorkingDirectory(ftpPath); // 转移工作目录至指定目录下 ftpClient.setFileType(FTP.BINARY_FILE_TYPE); if (change) { log.info("成功切换目录到"+ftpPath); result = ftpClient.storeFile(new String(fileName.getBytes("GBK"),"iso-8859-1"), input); if (result) { log.info(fileName+",上传成功!"); }else{ log.info(fileName+",上传失败"); } } input.close(); } } catch (IOException e) { e.printStackTrace(); } return result; } /** * 将本地文件上传到FTP服务器上 * * public static void testUpLoadFromDisk(String url, int port, String username, String password, String path, String filename,String filepath) { try { FileInputStream in = new FileInputStream(new File(filepath)); boolean flag = uploadFile(url, port, username,password, path, filename, in); System.out.println(flag); } catch (FileNotFoundException e) { e.printStackTrace(); } } / /** * 删除FTP上的文件 */ public static boolean removeFile(String srcFname){ boolean flag = false; if( ftpClient!=null ){ try { flag = ftpClient.deleteFile(srcFname); } catch (IOException e) { e.printStackTrace(); closeCon(); } } return flag; } /** * 改名FTP上的文件 */ public static boolean renameFile(String srcFname,String targetFname){ boolean flag = false; if( ftpClient!=null ){ try { flag = ftpClient.rename(srcFname,targetFname); } catch (IOException e) { e.printStackTrace(); closeCon(); } } return flag; } /** *<p>销毁ftp连接</p> */ public static void closeCon(){ if(ftpClient !=null){ if(ftpClient.isConnected()){ try { ftpClient.logout(); ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } } /** * 下载单个文件 */ public static boolean downloadFile(String ftpPath,String filePath,String fileName){ try { if( ftpClient!=null ){ FileInputStream input = new FileInputStream(new File(filePath+fileName)); boolean change = ftpClient.changeWorkingDirectory(ftpPath); // 转移工作目录至指定目录下 ftpClient.setFileType(FTP.BINARY_FILE_TYPE); if (change) { FTPFile[] fs = ftpClient.listFiles(); for(FTPFile ff:fs){ if(ff.getName().equals(fileName)){ File localFile = new File(filePath+"/"+ff.getName()); OutputStream is = new FileOutputStream(localFile); ftpClient.retrieveFile(ff.getName(), is); is.close(); } } } input.close(); } } catch (IOException e) { e.printStackTrace(); } return true; } }
0 0
- java中ftp上传、下载、重命名、删除功能实现
- JAVA实现FTP服务器文件的上传,下载,删除功能
- java定时备份mysql,定时ftp上传,下载,删除,重命名,文件(改)
- java实现FTP操作--上传,下载,删除文件
- java实现ftp下文件的上传、下载和删除
- java中FTP的 查看,上传,下载功能
- C# 实现 FTP 上传和下载功能
- java上传、下载、删除ftp文件
- asp.net ftp 上传,下载,删除文件,创建文件夹,删除文夹,重命名类
- java中ftp断点上传功能的实现
- ftp 上传 下载 删除
- java 中 FtpClient 实现 FTP 文件上传、下载
- 利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
- 利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
- C#对FTP的操作(上传,下载,重命名文件,删除文件,文件存在检查)
- C#对FTP的操作(上传,下载,重命名文件,删除文件,文件存在检查)
- C#对FTP的操作(上传,下载,重命名文件,删除文件,文件存在检查)
- [CentOs7]搭建ftp服务器(3)——上传,下载,删除,重命名,新建文件夹
- textView-setCompoundDrawables方法解析
- MapReduce实现矩阵乘法
- Linux后台开发应该具备技能
- Ajax请求访问action判断文件是否存在
- [当我在研究Cocos-2dx的源码时,我在想什么]-Ref类,一切的起源
- java中ftp上传、下载、重命名、删除功能实现
- 更改VS的默认开发语言
- 关于抽象类
- MongoDB官方C#驱动中查询条件Query用法
- .NET 批量插入数据,先查后插,性能优化
- Flex样式表自定义 .css
- 云智慧获千万级美元 B 轮融资,希望从技术端入手覆盖企业前后端管理
- 机器学习相关数据库
- SourceInsight的使用笔记