java ftp客户端_Java FTP客户端类库比较

FTP 的JDK支持

注释959(RFC959)需要FTP的参考规范,SUN微系统在JDK中提供了一个RFC959接口,但是它是内在的、没有正式文档记载的、并且没有提高任何源代码。尽管RFC959目前还没有清楚的说明,它实际上是RFC1738的一个公共接口的实现的后续--URL规范,如图1所示

jw-0404-ftp1-thumb.gif一个RFC1738实现在JDK中是作为标准被提供的,它为FTP传输操作完成合适的工作。它是公开的,并有正式文档说明,而且应该提供源代码。我们写出如下语句来使用这个实现:

URL url = new  URL(;type=i);

URLConnection urlc = url.openConnection();

InputStream is = urlc.getInputStream(); // 下载

OutputStream os = urlc.getOutputStream(); // 上传

FTP客户端的JDK支持严格的遵循标准建议,但是它具有一些缺点:

首先,它和第三方FTP类库有着根本的区别,RFC959实现优于RFC1738的;

第二,大多数台式机的FTP客户端工具中都是基于RFC959实现的,很多的JAVA程序使用这些工具来连接到FTP服务器。由于喜好的原因,这些工具大部分需要采用基于RFC959的库。

第三,URL和URLConnection类只是为通讯打开流。SUN的库没有为将原始的FTP服务器的回应信息组织构成更多可用的Java的对象如String, File, RemoteFile, 或 Calendar这些提供任何直接的支持。因此我们必须写更多的代码来将数据写入文件或者生成一个目录表。

第四,正如RFC1738中的3.2.5节所说明的,“最优化”,FTP URLs要求在每次操作后都要将连接控制关闭。当传输很多小的文件的时候,这是相当不经济的,而且效率相当低。而且,强限制的FTP服务器可能判断这是一个恶意的网络攻击或滥用高层通讯,进而会禁止其进一步的访问。

最后,它缺乏一些有用的特征。

由于上述的原因,使用一个第三者库是更优越的。下面的就列举出了一些可用的第三者代替方案:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值