java.io.File v.org.apache.commons.vfs2.FileObject

时间:2015-02-04 18:59:57

标签: java apache io

我正在尝试监控批处理文件的文件夹,该文件将被放在那里以对Web应用程序进行更新。该应用程序已经使用了Apache vfs2库,我的导致也建议我使用它。

我的问题是:java.io中的File与org.apache.commons.vfs2中的FileObject之间的概念差异是什么?

我已经在FileObjectFile阅读了文档,而我真正想要的是对这两个类的概念区分。例如:FileObject是File的某种包装器吗?我在他们的继承树中看不到多少共同之处,所以我觉得FileObject在任何地方都没有使用File。

1 个答案:

答案 0 :(得分:1)

VFS2 FileObject是一个与特定存储机制无关的接口(这是VFS2文件系统的重点)

FileObject可以表示本地文件系统文件,SFTP,FTP,HTTP或WebDav服务器上的文件,压缩存档中的文件,或者您可以想到的任何可能包含集合的任何其他内容构成文件的字节数。

java.io.File是对本地文件的引用,这就是它的结尾。

FileObject抽象的好处是你可以编写单个接口,而不关心构成该文件的字节实际来自哪里(即本地文件系统,通过SSH通过SFTP流传输,通过HTTP等。)