首页 > 编程语言 >记Java使用ftp下载文件失败的坑

记Java使用ftp下载文件失败的坑

时间:2024-08-21 16:52:43浏览次数:13  
标签:ftp Java 文件 InputStream 下载 close net ftpClient

使用的jar包

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

背景:需要从ftp服务器上拿到指定目录下的多个文件

boolean success = ftpClient.retrieveFile(remoteFilePath, outputStream);
     if (success) {
    	 log.info("File downloaded successfully.");
     } else {
         log.info("Failed to download file.");
     }

坑:下载单个文件没问题,下载多个文件会报错 百思不得其解

原因:
官方说法是:完成文件传输必须调用completependingcommand和检查它的返回值来验证成功。如果没有这样做,后续命令可能会意外地出错
简单来说:completePendingCommand()会一直在等FTP Server返回226 Transfer complete,但是FTP Server只有在接受到InputStream执行close方法时,才会返回。所以先要执行close方法
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/u012894692/article/details/79796160
解决方案:在使用public InputStream retrieveFileStream(String remote)

InputStream in = ftpClient.retrieveFileStream(fileName);
in.close();
ftpClient.completePendingCommand();

文章来自:https://blog.csdn.net/u012894692/article/details/79796160

标签:ftp,Java,文件,InputStream,下载,close,net,ftpClient
From: https://www.cnblogs.com/czh4869/p/18371962

相关文章

  • iMazing3汉化版一键下载无需激活版
    随着科技的不断进步,我们的生活方式也在发生着翻天覆地的变化。手机、电脑、平板等智能设备已经成为了我们生活中不可或缺的一部分。然而,随之而来的问题也越来越多,如何管理这些设备上的数据成为了许多人头疼的问题。而今天,我要为大家介绍的这款神器——iMazing3,就能轻松解决你的......
  • java计算机毕业设计盐城市亭湖区药店销售管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着医疗卫生事业的快速发展和人们健康意识的不断提升,药品零售市场日益繁荣,盐城市亭湖区作为人口密集、经济活跃的区域,药店数量激增,市场竞争日趋激烈......
  • java计算机毕业设计婴幼儿奶粉推荐系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着婴幼儿市场的蓬勃发展,婴幼儿奶粉作为宝宝成长的重要营养来源,其选择与品质日益受到家长们的高度关注。然而,面对市场上琳琅满目的奶粉品牌与种类,如......
  • java计算机毕业设计新世纪售房管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着房地产市场的蓬勃发展,房地产销售与管理面临着前所未有的挑战与机遇。传统的手工或简单的信息化管理方式已难以满足日益增长的业务需求,特别是在客......
  • Java计算机毕业设计框架的贵州农产品销售平台设计与实现(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在乡村振兴战略的大背景下,贵州作为农业大省,拥有丰富的农产品资源,但长期以来面临着信息不对称、销售渠道狭窄、品牌知名度不高等问题,严重制约了当地农......
  • 利用java设计模式的思维优化代码
    在Java开发中,设计模式提供了一套解决常见软件设计问题的成熟方案。通过合理应用设计模式,可以提高代码的可维护性、可读性和扩展性。以下是几个常用设计模式的示例,说明如何利用设计模式思维来优化代码。1.工厂模式(FactoryPattern)场景:假设你在开发一个系统,需要创建不同类......
  • Java预览PDF时的文件名称问题
     直接看问题直接看问题解决思路看了一下一个有问题的PDF文件之后发现文件的名称和文件的属性名其实不一致,浏览器默认展示的是文件的属性名,而不是我们看到的文件名称这也就让我定位到了问题的所在,出现这个bug的原因就是PDF文件的属性名称与文件名称不一致,定位到问题之后就很......
  • Java面试八股文 非常详细了!!!
    准备篇Java程序员的面试过程——总分结构凡事预则立,不预则废应届生该如何找到合适的练手项目Redis篇面试考点——一、缓存面试官:什么是缓存穿透 ?怎么解决?候选人:(穿透无中生有Key,布隆过滤NULL隔离)嗯~~,我想一下缓存穿透是指查询一个一定不存在的数据,如果从存储......
  • java计算机毕业设计中小型制造型企业erp管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和市场竞争的日益激烈,中小型制造型企业面临着前所未有的挑战与机遇。传统的手工管理模式已难以满足企业对于效率、成本控制及......
  • java计算机毕业设计学院综合管理系统设计与开发—科研数据管理子系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高等教育的快速发展与科研活动的日益频繁,学院作为科研活动的重要载体,其科研数据的管理变得愈发复杂与重要。传统的手工记录与分散存储方式已难以......