正在阅读:Java FTP客户端类库比较Java FTP客户端类库比较

2004-04-19 10:35 出处:Matrix.org.cn 作者:watermark 责任编辑:sdq

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

  一个RFC1738实现在JDK中是作为标准被提供的,它为FTP传输操作完成合适的工作。它是公开的,并有正式文档说明,而且应该提供源代码。我们写出如下语句来使用这个实现:
   
   URL url = new  URL(
ftp://user01:pass1234@ftp.foo.com/README.txt;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服务器可能判断这是一个恶意的网络攻击或滥用高层通讯,进而会禁止其进一步的访问。
    最后,它缺乏一些有用的特征。

  由于上述的原因,使用一个第三者库是更优越的。下面的就列举出了一些可用的第三者代替方案:
键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品