下载ftp服务器文件

public StringBuilder downLoadFTPFile(String hostName,int port,String userName,String password,String remotePath,String fileName){InputStream is = null;BufferedReader br = null;try {//连接ftp服务器ftpClient.connect(hostName,21);ftpClient.login(userName,password);if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {ftpClient.disconnect();System.out.println("连接失败,失败code是:" + ftpClient.getReplyCode() + "\n失败描述是:" + ftpClient.getReplyString());}//设置服务器下的文件路径。boolean hasRemote = ftpClient.changeWorkingDirectory(remotePath);if (!hasRemote){System.out.println("进入ftp目录失败。");}System.out.println("-----hostName:" + hostName + "---userName:" + userName + "---password" + password+ "---remotePath:" + remotePath + "---fileName:" + fileName);//获取文件输入流is = ftpClient.retrieveFileStream(fileName);System.out.println("文件输入流是:"+ is);br = new BufferedReader(new InputStreamReader(is,"UTF-8"));String line;while ((line = br.readLine()) != null){//读取数据sbResult.append(line + "\n");System.out.println("每一行的数据内容是:" + sbResult);}ftpClient.logout();} catch (IOException e) {e.printStackTrace();System.out.println("连接门户ftp获取文件失败,失败原因:" + e.getMessage());}finally {if (ftpClient.isConnected()){try {ftpClient.disconnect();} catch (IOException e) {e.printStackTrace();}}if (br != null){try {br.close();} catch (IOException e) {e.printStackTrace();}}if (is != null){try {is.close();} catch (IOException e) {e.printStackTrace();}}}}

pom文件中添加

     <dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.3</version></dependency>

解析的时候可以按行截取。

好了本来到这里已经结束了,连自己的阿里云服务器是没有什么问题的。
但是上了公司的测试服务器以后(因为调的是其他厂家的ftp服务,所以可能跟自己的云服务器配置不一样。),一直报ftp response 421 server close connect。
各种查问题,各种找资料,我尝试直接在虚机使用

ftp ip + 端口

命令去直接获取文件

get 文件名称

可以拿到,获取到的是二进制的数据

然后就想到了把获取文件设置为二进制。
代码如下

ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);

结果还是不行。
然后网上查需要设置成被动模式
代码如下

ftpClient.enterLocalPassiveMode();

然后还是不行,这下就陷入了沉思,死活通不了。这么个破东西搞了一个多礼拜。最后发现原因是因为我是在连接登录前设置的二进制文件,最后放到连接和登录之后就好了。简直要气炸。故记录一下,有时间去看源码为什么回这样。

ftpClient.connect(hostName,port);
ftpClient.login(userName,password);

下载ftp服务器文件。相关推荐

  1. 服务器被bash服务占满_用bash脚本自动下载ftp服务器文件

    我一直觉得黑客就应该把图形画界面丢弃,这一直是我的坚持,所以我就学写一些脚本,毕竟自己写脚本也有乐趣,还能写写一些文章,挺好玩的. 在internet中最火热的应用就是文件传输,其中最简单的就是FTP ...

  2. Linux下使用wget下载FTP服务器文件

    wget -nH -m --ftp-user=your_username --ftp-password=your_password ftp://your_ftp_host/* 使用命令下载ftp上的文 ...

  3. Linux系统下载FTP服务器文件

    方法1:使用wget下载 wget -nH -m --ftp-user=%username --ftp-password=%password ftp://**.**.**.** -nH:不创建以主机名 ...

  4. FTP服务器文件自动上传、下载(bat)

    FTP服务器文件自动上传.下载(bat) 1.FTP自动上传 #上传脚本bat,将攻击机的文件上传到靶机,并清理痕迹 @echo Off echo open 192.168.203.133>&g ...

  5. 不限文件类型的ftp服务器,ftp服务器文件类型

    ftp服务器文件类型 内容精选 换一换 在SAP系统中,如果选择共享文件系统由SFS Turbo而非NFS Server提供时,例如SAP HANA中的Backup卷或者Shared卷,您需要创建SF ...

  6. mac 远程ftp服务器文件共享,mac 远程ftp服务器文件

    mac 远程ftp服务器文件 内容精选 换一换 云堡垒机配置了FTP/SFTP远程备份,报请检查服务器密码或网络连接情况错误,不能启动远程备份.选择备份具体某一天日志,提示备份正在执行,但远程服务器未 ...

  7. mac 上传ftp服务器文件夹权限,mac 访问 ftp服务器文件夹权限

    mac 访问 ftp服务器文件夹权限 内容精选 换一换 在"云服务器列表"页,单击下拉按钮展开会话列表,查看会话连接状态,出现"关闭应用失败"的异常.将鼠标移动 ...

  8. win7建立服务器文件夹权限,win7 ftp服务器 文件夹权限

    win7 ftp服务器 文件夹权限 内容精选 换一换 DDK_HOME:为ddk安装目录,默认为../../che/ddk/ddk/,请根据实际情况修改为 DDK安装目录/ddk/.CC_SIDE:为 ...

  9. ftp服务器备份手机文件,ftp服务器文件自动备份

    ftp服务器文件自动备份 内容精选 换一换 为加强对数据的容灾管理,云堡垒机支持手动备份和配置日志远程备份,提高审计数据安全性和系统可扩展性.通过手动导出/下载各功能模块数据文件保存在本地,可手动备份 ...

最新文章

  1. avrorecord.java,失败,但发生异常java.io.IOException:org.apache.avro.AvroTypeException:发现的很长,期望在配置单元中实现联合...
  2. Python基础教程:在for循环搭配else的陷阱,你知道吗?
  3. 软件版本具体代表什么意思
  4. 【iOS atomic、nonatomic、assign、copy、retain、weak、strong】的定义和区别详解
  5. qt连接mysql4.7数据库_QT4.7访问MySQL的驱动编译过程
  6. js / php 网站底部版权文字自动改变年份
  7. Mysql之drop、delete、truncate的区别
  8. Java的JDK以及maven环境变量配置
  9. 两端对齐几种实现方案
  10. linux系统安装mysql的步骤_在Linux系统安装MySql步骤截图详解
  11. hfss和python接口_python 与HFSS联合仿真的教程讲解
  12. Silverlight4 多页打印实现
  13. 8086/8088 CPU的段寻址方式,段地址和偏移地址
  14. 世界银行264个国家1437项统计指标
  15. 竞赛|阿里巴巴全球调度算法大赛
  16. c语言编译器w7,wintc下载|c语言编译器wintc win7/win8兼容版 v2.0下载 64位32位 - 3322软件站...
  17. 火狐查看密码_在Firefox中查看和删除存储的密码
  18. 【每日蓝桥】14、一三年省赛Java组真题“三部排序”
  19. Android 11.0 12.0TvSettings系统设置遥控器home键退不出主页面功能的修复
  20. 该内存不能written

热门文章

  1. 基于Docker搭建单机版Mesos/Marathon
  2. 深度 | 从硬件配置到软件安装,一台深度学习机器的配备指南
  3. 打印服务器的文件夹,如何打印远程服务器文件夹
  4. maemo useful link
  5. linux 系统时间编程(1) wall time和monotonic time科普
  6. 名帖293 张瑞图 行书《书米芾西园雅集图记十二条屏》
  7. Win32API学习笔记第六章(四)
  8. 软件测试工程师对英语要求高吗,软件测试工程师面试英语
  9. css 导航栏下划线跟随效果,默认第一个li为选中状态
  10. 100道软件测试练习题,看看你能有多少分