http://www.javayou.com (收藏,设为首页)
当你不能再拥有时,你唯一能做的,就是让自己不要忘记 (手机请访问 http://3g.dlog.cn/javayou)

Commons-VFS——虚拟文件系统

2007年1月3日(Wednesday) 09点11分 作者: 刘冬 天气: 心情: 一般

Apache的Jakarta-Commons项目刚刚发布一个新的API——VFS 1.0。从名字上来看是关于文件系统的一个好东西,再仔细一看,哇塞,我一直想要一个这样的玩意。

VFS把对各种各样的的文件系统的访问封装成统一的应用程序接口,这大大的简化了应用程序本身代码的复杂度。Apache上的项目的稳定性也是有目共睹的,目前VFS支持下面一些文件系统,当然你也可以自行进行扩展。

  • FTP
  • Local Files
  • HTTP and HTTPS
  • SFTP
  • Temporary Files
  • Zip, Jar and Tar (uncompressed, tgz or tbz2)
  • gzip and bzip2
  • res
  • ram

    而这些文件系统中的文件被封装成了FileObject这个类,文件的读写操作通过此类来操作。文件的路径采用了URL的方式,例如:

  • file:///somedir/some%25file.txt
  • zip:// arch-file-uri[! absolute-path]
  • http://[ username[: password]@] hostname[: port][ absolute-path]
  • webdav://[ username[: password]@] hostname[: port][ absolute-path]
  • ftp://[ username[: password]@] hostname[: port][ absolute-path]
  • smb://[ username[: password]@] hostname[: port][ absolute-path]
  • tmp://[ absolute-path]
  • res://[ path]
  • ram:///any/path/to/file.txt
  • mime:file:///your/path/mail/anymail.mime!/filename.pdf

    看看上面这些示例,最后一个让我觉得惊奇,居然直接可以读取邮件附件,太强了。

    更多的资料您还是自己看看VFS的网页吧: http://jakarta.apache.org/commons/vfs

    另外VFS用来支持ISO文件的插件可以看看这里

    ISO 9660 - http://loopy.sourceforge.net

    反正,俺已经决定在新项目中用这个东西试试了。

  • 评论者: Jonney 2007-1-3 11:53 (Wednesday)
    酷~~
    评论者: ReachMan 2007-1-4 11:34 (Thursday)
    我是初学者 弱弱的问下 没VFS前 JAVA读FTP文件是怎么实现的?
    评论者: 刘冬 2007-1-4 11:48 (Thursday)
    Apache有一个Commons-NET,或者自己写程序用JDK的API处理。
    评论者: ReachMan 2007-1-4 12:18 (Thursday)

    这么看来 VFS 真的是好东西了

    评论者: radius 2007-5-3 03:32 (Thursday)

    您据此实现了winmount?

    http://cn.winmount.com

    并打算申请专利?

    评论者: pig345 2007-6-4 09:38 (Monday)
    可惜zip的支持都是只读!
    评论者: zrmo 2007-10-15 10:43 (Monday)

    正是我要的

    姓名: 
    邮箱:  {可选}
    网址:  {可选} 此评论只有我和写日记的人查阅
    校验码: ... <我看不清楚>
    网记为您提供手机和互联网同步的个人主页,带给你不一样的体验