最近项目中需要到Ftp文件上传,选择了Commons net。Commons net包中的ftp工具类能够帮助我们轻松实现Ftp方式的文件上传/下载。其中最重要的一个类就是FTPClient类,这个提供了许多FTP操作相关的

方法,比如链接,登录,上传,下载,和注销。

FTP 操作的过程一般为连接服务器,登录,进行文件上传/下载,文件(目录)的添加删除修改等操作。平常用的比较多的是文件的上传和下载。

下面是一些基本的上传操作(将Commons net的jar包引入即可使用):

public class FtpUtil {public static void main(String[] args) {FTPClient ftpClient = new FTPClient();try {//连接指定服务器,默认端口为21ftpClient.connect("127.0.0.1");System.out.println("connect to server");//获取响应字符串(FTP服务器上可设置)String replyString = ftpClient.getReplyString();System.out.println("replyString: " + replyString);//获取响应码用于验证是否连接成功int reply = ftpClient.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {System.out.println("");System.exit(1);}//设置链接编码,windows主机UTF-8会乱码,需要使用GBK或gb2312编码ftpClient.setControlEncoding("GBK");//登录服务器boolean login = ftpClient.login("luojing", "luojing");if (login) {System.out.println("登录成功!");} else {System.out.println("登录失败!");}//获取所有文件和文件夹的名字FTPFile[] files = ftpClient.listFiles();for(FTPFile file : files){if(file.isDirectory()){System.out.println(file.getName() + " 是文件夹");}if(file.isFile()){System.out.println(file.getName() + " 是文件");}}//生成InputStream用于上传本地文件InputStream in = new FileInputStream("e:\\1.txt");//上传文件ftpClient.storeFile("dest.txt",in);in.close();//注销登录boolean logout = ftpClient.logout();if (logout) {System.out.println("注销成功!");} else {System.out.println("注销失败!");}} catch (Exception e) {e.printStackTrace();} finally {//关闭链接需要放在finally语句块中if (ftpClient.isConnected()) {try {ftpClient.disconnect();} catch (IOException e) {e.printStackTrace();}}}}}

此外,FTPClient类中也提供了一些文件/文件夹操作的方法。通过commos net提供的方法,可以方便的实现断点传输等功能。我还可以同个retrieveFileStream方法来获取远程服务器中指定文件的一个输入流来供我们手动的进行读操作,也可以使用appendFileStream方法来获取要上传到远程服务器中文件对应的输出流对象,然后我们就可以手动的从本地文件中读取数据然后写入到远程服务中,比如我们想知道上传的进度。总的来说,Commons net提供的方法还是非常好使,非常方便的。一些其他的功能就需要在使用的时候去看API手册了。

可能是环境影响,发现到了公司之后学习效率比在学校高了很多额,继续加油!

转载于:https://www.cnblogs.com/jdluojing/archive/2012/07/23/3212412.html

Commons net实现 FTP上传下载相关推荐

  1. 高可用的Spring FTP上传下载工具类(已解决上传过程常见问题)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:宇的季节 cnblogs.com/chenkeyu/p/80 ...

  2. java ftp上传文件_jaVA使用FTP上传下载文件的问题

    为了实现 FTP上传下载,大概试了两个方法 sun.net.ftp.FtpClient org.apache.commons.net 一开始使用sun.net.ftp.FtpClient,结果发现唯一 ...

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

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

  4. ftp上传-下载文件通用工具类,已实测

    话不多说直接上代码 package com.springboot.demo.utils;import lombok.extern.slf4j.Slf4j; import org.apache.comm ...

  5. linux curl 命令 http请求、下载文件、ftp上传下载

    1. curl 命令简介 cURL(CommandLine Uniform Resource Locator),是一个利用 URL 语法,在命令行终端下使用的网络请求工具,支持 HTTP.HTTPS. ...

  6. python get 下载 目录_python实现支持目录FTP上传下载文件的方法

    本文实例讲述了python实现支持目录FTP上传下载文件的方法.分享给大家供大家参考.具体如下: 该程序支持ftp上传下载文件和目录.适用于windows和linux平台. #!/usr/bin/en ...

  7. linux的ftp下载假死,记一次commons-net FTP上传下载卡死

    在利用apache的commons-net包,做FTP上传下载时,碰到了一个问题:在默认配置下,传输大文件会卡死. commons-net的maven依赖: commons-net commons-n ...

  8. python上传本地文件到ftp_python实现的简单FTP上传下载文件实例

    本文实例讲述了python实现的简单FTP上传下载文件的方法.分享给大家供大家参考.具体如下: python本身自带一个FTP模块,可以实现上传下载的函数功能. #!/usr/bin/env pyth ...

  9. FTP上传下载端口号

    FTP上传下载端口号,上传下载分两种模式,主动式,被动式,主动式就是FTP服务器主动打开端口,把数据给客户端,被动式就是客服端自己从服务器的某个端口号取数据.  端口有两个,控制端口,数据传输端口,主 ...

最新文章

  1. 修改CentOS yum源
  2. 营销型企业更因紧跟营销潮流
  3. 解析中间人攻击(1/4)---ARP缓存中毒
  4. 关于 Java Collections API 您不知道的 5 件事--转
  5. uvision4 ide已停止工作
  6. gets与fgets,puts与fputs区别
  7. 发现dba_segments和dba_extents中统计段空间大小居然不一样
  8. 2019最有意思的五大 ZDI 案例之:通过调色板索引实现 Win32k.sys 本地提权漏洞(上)...
  9. mysql 主从切换_mysql主从切换步骤
  10. 【ANSYS】网格划分技术之映射网格
  11. 机器学习十大算法原理总结
  12. 阿里云服务器如何登录?阿里云服务器的三种登录方法...
  13. linux-查看CPU温度
  14. 轻松教你苹果airdrop怎么用
  15. 苹果发布iOS10.2.1 ,别升级!别问为什么
  16. 美国南加州大学骆沁毅:构建高性能的异构分布式训练算法
  17. 【 IntelliJ IDEA 】设置主题和字体
  18. 搜狗输入法的符号大全里面可以输入下标
  19. 【mcuclub】蓝牙模块-ECB02
  20. qpython3手机版turtle_Python的画图模块turtle使用详解

热门文章

  1. Qt笔记-添加Win10Pcap库获取网络适配器(MinGW编译器)
  2. Spring Boot注册Servlet三大组建(Servlet、Filter、Listener)
  3. Qt|Http笔记-两种方式发送http协议数据,获取服务器数据(GET方法)
  4. WEB安全基础-PHP相关
  5. oracle ash介绍,Oracle ---- 性能调查之ASH(一)
  6. oc和java_oc与java c++语法区别
  7. python对应的岗位_隐式相对导入如何在Python中工作?
  8. python sklearn 梯度下降法_科学网—Python_机器学习_总结4:随机梯度下降算法 - 李军的博文...
  9. 执行远程服务器上的脚本失败?(环境变量引起的问题)
  10. 前端基础-html-表格的基本标签和相关属性