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
看看上面这些示例,最后一个让我觉得惊奇,居然直接可以读取邮件附件,太强了。
Commons-VFS的Javadoc文档:http://www.oschina.net/uploads/doc/commons- vfs-1.0/index.html