使用java commons net包中的api可以方便操作ftp操作。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;public class FtpCtrl {public static void main(String[] args) throws Exception {String url = "ip";int port = 21;String username = "username";String password = "password";String path = "/";String filename = "ftp.test.tmp";FileInputStream fis = new FileInputStream("/home/iamsuperman/ftp.txt");uploadFile(url, port, username, password, path, filename, fis);}/*** @param ip*            FTP服务器IP地址* @param port*            FTP服务器端口* @param username*            FTP服务器登录名* @param password*            FTP服务器密码* @param remotePath*            远程文件路径* @param fileName*            待删除的文件名* @return* @see [类、类#方法、类#成员]*/public static boolean deleteFtpFile(String ip, int port, String username, String password, String remotePath,String fileName) {boolean success = false;FTPClient ftp = new FTPClient();try {int reply;// 连接FTP服务器if (port > -1) {ftp.connect(ip, port);} else {ftp.connect(ip);}// 登录
            ftp.login(username, password);reply = ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return success;}// 转移到FTP服务器目录
            ftp.changeWorkingDirectory(remotePath);success = ftp.deleteFile(remotePath + "/" + fileName);ftp.logout();} catch (IOException e) {e.printStackTrace();success = false;} finally {if (ftp.isConnected()) {try {ftp.disconnect();} catch (IOException e) {e.printStackTrace();}}}return success;}/*** Description: 从FTP服务器下载文件* * @param ip*            FTP服务器hostname* @param port*            FTP服务器端口* @param username*            FTP登录账号* @param password*            FTP登录密码* @param remotePath*            FTP服务器上的相对路径* @param fileName*            要下载的文件名* @param localPath*            下载后保存到本地的路径* @return*/public static boolean downloadFile(String ip, int port, String username, String password, String remotePath,String fileName, String localPath) {boolean success = false;FTPClient ftp = new FTPClient();try {int reply;// 连接FTP服务器if (port > -1) {ftp.connect(ip, port);} else {ftp.connect(ip);}ftp.login(username, password);// 登录reply = ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return success;}ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录FTPFile[] fs = ftp.listFiles();for (FTPFile ff : fs) {if (ff.getName().equals(fileName)) {File localFile = new File(localPath + "/" + ff.getName());OutputStream is = new FileOutputStream(localFile);ftp.retrieveFile(ff.getName(), is);is.close();}}ftp.logout();success = true;} catch (IOException e) {e.printStackTrace();} finally {if (ftp.isConnected()) {try {ftp.disconnect();} catch (IOException e) {e.printStackTrace();}}}return success;}/*** Description: 向FTP服务器上传文件* * @param ip*            FTP服务器hostname* @param port*            FTP服务器端口,如果默认端口请写-1* @param username*            FTP登录账号* @param password*            FTP登录密码* @param path*            FTP服务器保存目录* @param filename*            上传到FTP服务器上的文件名* @param input*            输入流* @return 成功返回true,否则返回false*/public static boolean uploadFile(String ip, int port, String username, String password, String path,String filename, InputStream input) {boolean success = false;FTPClient ftp = new FTPClient();try {int reply;// 连接FTP服务器if (port > -1) {ftp.connect(ip, port);} else {ftp.connect(ip);}// 登录FTP
            ftp.login(username, password);reply = ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return success;}ftp.changeWorkingDirectory(path);ftp.storeFile(filename, input);input.close();ftp.logout();success = true;} catch (IOException e) {success = false;e.printStackTrace();} finally {if (ftp.isConnected()) {try {ftp.disconnect();} catch (IOException e) {e.printStackTrace();}}}return success;}}
==============================================================================获取连接时候:ftp.enterLocalPassiveMode();这句话特别重要。

转载于:https://www.cnblogs.com/swbzmx/p/5604431.html

Java操作ftp,上传,下载,删除操作相关推荐

  1. 阿里云oss 使用, 基于Nginx 配置云服务器+oss的内网访问 , 及使用Java SDK 完成上传,下载,删除,查询文件列表操作

    一.同阿里产品,云服务器和存储对象oss-配置内网访问 阿里存储对象oss 地址: https://oss.console.aliyun.com/overview 配置须知 通过Nginx 进行网络转 ...

  2. ftp: connect: 没有到主机的路由_Qt之FTP上传/下载文件操作

    ​一个简单的Ftp客户端文件上传/下载操作示例. 上传文件 QNetworkAccessManager manager; QUrl url; /* 设置通讯协议 */ url.setScheme(&q ...

  3. Qt之FTP上传/下载文件操作

    一个简单的Ftp客户端文件上传/下载操作示例. 上传文件 QNetworkAccessManager manager; QUrl url; /* 设置通讯协议 */ url.setScheme(&qu ...

  4. ftp上传文件服务器报550错误_java ftp下载文件,Java 实现ftp上传下载文件

    最近项目中需要实现将文件先存放到ftp上,需要的时候再从ftp上下载,做的过程中碰到了问题,发现中文文件名的无法上传到ftp上,ftp上的中文文件名的文件下载不下来,几番折腾,终于搞定了,记录一下备忘 ...

  5. java操作文件_java操作FTP,实现文件上传下载删除操作

    上传文件到FTP服务器: /** * Description: 向FTP服务器上传文件 * @param url FTP服务器hostname * @param port FTP服务器端口,如果默认端 ...

  6. FastDFS上传下载删除操作

    1.第一步 添加fastdfs-client.properties配置文件并修改 ## fastdfs-client.propertiesfastdfs.connect_timeout_in_seco ...

  7. Java 实现Ftp上传下载文件

    最近项目中需要实现将文件先存放到ftp上,需要的时候再从ftp上下载,做的过程中碰到了问题,发现中文文件名的无法上传到ftp上,ftp上的中文文件名的文件下载不下来,几番折腾,终于搞定了,记录一下备忘 ...

  8. ftp. java. jdk_java实现ftp上传下载(jdk1.7以下)

    java实现ftp上传下载(jdk1.7以下)完整代码,复制可用 FTP实现代码: package com.util; import java.io.File; import java.io.File ...

  9. java实现的FTP上传下载客户端

    org.apache.commons.net.ftp.*中的FTPClient类实现的FTP上传下载功能: 需导入Apache的commos-net的jar包,若导入的是1.4版本的包,则FTPFil ...

最新文章

  1. 云平台屡次停摆,核心系统事故频发?您的运维系统该升级了!
  2. 数据结构——图:极大小连通子图、图的存储结构、图的遍历
  3. 谈谈java的并发容器、Queue
  4. 如何设置WebLogic生成的日志文件的权限?
  5. MCMC 和 Gibbs采样
  6. Android MotionEvent中getX()、getRawX()和getTop()的区别
  7. JSP九大内置对象(转载)
  8. AS3.0面向对象的写法,类和实例
  9. 《推荐系统笔记(九))》DNN的BP算法(内含详细数学推导)
  10. linux 远程桌面 命令,linux 命令 远程连接
  11. 自家公司关于git commit 的规范
  12. 软考中级软件设计师知识点总结
  13. 如何安装并且运行阿帕奇服务器 for windows
  14. android 编写计时器,Android用5种方式实现自定义计时器, 哪种才是你的菜?
  15. C++11中的原子操作(atomic operation)和自旋锁
  16. Altium Designer(AD)软件使用记录05-PCB叠层设计
  17. 新百家姓出来了,看你排第几位?
  18. 著者四角号码查询_著者姓名汉语拼音与四角号码数字混编书次号的应用
  19. 解决 git 文件夹不显示绿色图标和红色图标的问题
  20. ArcGIS学习之tif文件打开一片空白的解决办法——创建金字塔

热门文章

  1. 回归模型评估_评估回归模型的方法
  2. Common Used Excel Formulas
  3. 李嘉诚拥有8500亿资产, 是真正的世界首富,为何要藏富?
  4. C# 7.1、7.2特性追踪
  5. fedora 用安装 DVD 建立本地 yum 源
  6. Windows Mobile的一些网站和资源(由网友搜集 我整理了一下)
  7. 文件被后台程序占用无法删除_win10重装后系统占用50G?只要做好这2步,运行比win7还快...
  8. mysql处理时间_MYSQL时间处理  (转)
  9. Imbalanced data – Finding Waldo
  10. 2019春季学期第四周作业