- 浏览: 582942 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
liugang_ok:
zhao_rock 写道看到这篇文章时已经是2015年11月2 ...
毕业三年之际写给可能迷茫的你我 -
ning2-eye:
...
2015年总结和2016年计划 -
sxdtzhaoxinguo:
我竟然看完了,很受启发!
2015年总结和2016年计划 -
hottymg:
...
2015年总结和2016年计划 -
hangzhoujava:
伪命题很多,比如有许多的上市公司还不如未上市公司,大家心里还是 ...
2015年总结和2016年计划
最近接收一个遗留项目,用的是flex和java,后台用的是mybatis和spring。在测试时发现下载有问题,结果花了一两天时间才将问题解决,下面将解决过程中碰到的问题和解决的思路贴出来:
因为项目做出来有段时间了,当初用的是sun.net.ftp.FtpClient这个类,这个类本身就存在问题,而且java api文档中无法查询。并且是jdk1.6的版本,导致放在jre1.7上时保存,后来改成jre1.6问题才解决,但是仍然无法下载,一直报异常“Source not found for $$FastClassByCGLIB$$7782d62a.invoke(int, Object, Object[]) line: not available”。让人很纠结,硬是没有找到原因所在,网上有的说是sql语句错了,有的说是jar包的问题,有的说是反射或cglib的问题等等,但是一一测试仍然没有解决,因为之前有人说这个功能是好的,所以就没有打算换方法,后来实在不行,网上也有人建议用apache的org.apache.commons.net.ftp.FTPClient类,就换成了FTPClient。结果居然好用了:
代码如下:
看你文件处理的频率和大小了,如果你有更好的方法也可以分享下?
我也没有……只能怪FTP判断文件是否存在的方法还不够完善了。。。
看你文件处理的频率和大小了,如果你有更好的方法也可以分享下?
因为项目做出来有段时间了,当初用的是sun.net.ftp.FtpClient这个类,这个类本身就存在问题,而且java api文档中无法查询。并且是jdk1.6的版本,导致放在jre1.7上时保存,后来改成jre1.6问题才解决,但是仍然无法下载,一直报异常“Source not found for $$FastClassByCGLIB$$7782d62a.invoke(int, Object, Object[]) line: not available”。让人很纠结,硬是没有找到原因所在,网上有的说是sql语句错了,有的说是jar包的问题,有的说是反射或cglib的问题等等,但是一一测试仍然没有解决,因为之前有人说这个功能是好的,所以就没有打算换方法,后来实在不行,网上也有人建议用apache的org.apache.commons.net.ftp.FTPClient类,就换成了FTPClient。结果居然好用了:
代码如下:
public static boolean downFile(List<String> directoryList, String targetPath) { boolean success = false; for (String directoryString : directoryList) { String fileName = directoryString.substring(directoryString .lastIndexOf("/") + 1); String remotePath = directoryString.substring(1, directoryString .lastIndexOf("/")); FTPClient ftp = new FTPClient(); try { int reply; ftp.connect(ftpIP); 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(targetPath+"/"); if (!localFile.exists()) { localFile.mkdirs(); } OutputStream is = new FileOutputStream(localFile+"/"+ff.getName()); 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 ioe) { } } } } return success; }
评论
3 楼
南京玄武
2013-12-05
liugang_ok 写道
南京玄武 写道
你确定这一段不影响效率?
FTPFile[] fs = ftp.listFiles(); for(FTPFile ff:fs){ if(ff.getName().equals(fileName)){ File localFile = new File(targetPath+"/"); if (!localFile.exists()) { localFile.mkdirs(); } OutputStream is = new FileOutputStream(localFile+"/"+ff.getName()); ftp.retrieveFile(ff.getName(), is); is.close(); } }
看你文件处理的频率和大小了,如果你有更好的方法也可以分享下?
我也没有……只能怪FTP判断文件是否存在的方法还不够完善了。。。
2 楼
liugang_ok
2013-11-19
南京玄武 写道
你确定这一段不影响效率?
FTPFile[] fs = ftp.listFiles(); for(FTPFile ff:fs){ if(ff.getName().equals(fileName)){ File localFile = new File(targetPath+"/"); if (!localFile.exists()) { localFile.mkdirs(); } OutputStream is = new FileOutputStream(localFile+"/"+ff.getName()); ftp.retrieveFile(ff.getName(), is); is.close(); } }
看你文件处理的频率和大小了,如果你有更好的方法也可以分享下?
1 楼
南京玄武
2013-11-19
你确定这一段不影响效率?
FTPFile[] fs = ftp.listFiles(); for(FTPFile ff:fs){ if(ff.getName().equals(fileName)){ File localFile = new File(targetPath+"/"); if (!localFile.exists()) { localFile.mkdirs(); } OutputStream is = new FileOutputStream(localFile+"/"+ff.getName()); ftp.retrieveFile(ff.getName(), is); is.close(); } }
发表评论
-
Windows下64位Apache服务器的安装
2014-07-14 14:06 835首先需要说明的是,Apaceh服务器没有官方的64位版本,只有 ... -
Eclipse反编译jar包查看class文件
2014-03-29 11:54 3293很方便,直接用F3或者ctrl点击查看。 Eclipse反 ... -
OpenCms initialization: Unable to initialize the user driver
2014-01-04 11:41 4204在Eclipse中部署工程,报错误: org.opencms. ... -
Java compiler level does not match the version of the installed Java project fac
2013-11-26 16:36 881出错: Java compiler level does no ... -
读取配置文件中数据
2013-06-17 22:35 1009import java.io.IOException; im ... -
WebService的实现
2013-04-23 15:14 1263一:首先创建个WEB工程,然后: http://ws.Apac ... -
java.lang.OutOfMemoryError: PermGen space及其解决方法
2013-03-14 10:53 773PermGen space的全称是Perman ... -
Source not found for $$FastClassByCGLIB$$7782d62a.invoke(int, Object, Object[])
2012-09-29 10:33 17306最近在用sun.net.ftp.FtpClient下载时总是报 ... -
org.apache.jasper.JasperException: java.lang.ClassNotFoundException
2012-09-06 10:41 21099最近在部署一个J2EE工程时,报如下异常: org.apach ... -
Hibernate连接多个数据库
2012-08-30 22:57 1071一、 Hibernate访问数据库时加 ... -
POI和JXL中日期无法显示问题
2012-04-09 22:53 1480在用POI和JXL进行日期处理时,日期格式为“2012/04/ ... -
POI Import Export Excel
2012-03-12 23:12 1953所以我们字段field与单元格cellRef映射信息可以是这样 ... -
Flex+Java+BlazeDS多文件上传
2012-03-12 23:13 2635Flex文件上传功能,后台服务器管理用Java,通信工具Bla ... -
MyEclipse添加lobmok
2011-12-25 16:47 2534方法一: 首先在官网下载lobmok.jar,然后拷贝到项 ... -
JSP传值乱码解决方案
2011-11-30 20:01 25652关于jsp乱码问题的解决 ... -
EL表达式详解
2011-11-05 17:14 544EL表达式 1、EL简介 1)语法结构 ... -
java字符串日期数字格式化处理大全
2011-09-05 15:37 1555在C中可以使用类似printf(“%d %8.2f\\n ... -
MyEclipse7.5序列号破解代码
2011-07-21 16:43 1334运行下面代码,然后控制台提示:please input reg ... -
Hibernate的几种查询方式-HQL,QBC,QBE,离线查询,复合查询,分页查询
2011-07-12 10:31 1847HQL查询方式 这一种我最常用,也是最喜欢用的,因为它写起来灵 ... -
java两个时间相差多少天时分秒
2011-06-24 13:13 5979[size=medium;]package[/size] be ...
相关推荐
JAVA中使用FTPClient上传下载
Delphi XE3使用ICS的FTPClient从FTP服务器下载文件,本人用来实现客户端软件自动升级功能,提供从FTP下载文件的源码供大家参考。之前用的IdFTP连接服务器经常出现10054错误,参考网上的意见使用ICS的FTPClient解决了...
NULL 博文链接:https://1017401036.iteye.com/blog/2266160
FTPClient的jar包 FTPClient ftpClient = new FTPClient(); ftpClient.connect("ftp.foo.com"); ftpClient.login("user01", "pass1234"); ftpClient.download("C:\\Temp\\&quo; t;, "README.txt"); // ...
java FTPClient 文件上传下载文件
FTPClient (apache) 上传下载示例代码
ftpclient 未完成的作品
java利用FTPClient实现上传下载文件
C#的FTP操作类库,支持FTP文件的上传,下载等等,封装好的可直接引用FtpClient; 如果自己单枪匹马写一个连接ftp服务器代码那是相当恐怖的(socket通信),有一个评价较高的dll库可以供我们使用。 那就是System...
这是一些代码,给大家共享一下,希望大家用的到
用ftpclient 对ftp服务器(支持linux,window服务器)上的文件上传、下载、删除 文件包含jar包,可直接运行代码
FtpClient(sun)上传下载实例代码
主要介绍了Spring Boot整合FTPClient线程池的实现示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
ftpclient用于实现java的文件上传和下载
ftpclient开发所需要的jar包,commons-net-1.4.1.zip,jakarta-oro-2.0.8.zip
编译后可在bin下面生成System.Net.FtpClient.dll,用于C#在ftp上传时调用。
org.apache.commons.net.ftp.FTPClient FTP工具类,实现上传、下载、压缩到输出流下载等功能
FTPClient使用
Ftp Client FtpClient 组件 源码 可以做升级程序,我就是用这个做的。 大家可以试用一下。
sun.net.ftp.FtpClient,it.sauronsoftware.ftp4j.FTPClient,org.apache.commons.net.ftp.FTPClient三种不同的方式操作FTP