我正在尝试监视一个批处理文件的文件夹,该文件将被拖放到该文件夹​​中以更新Web应用程序。该应用程序已经使用了Apache vfs2库,我的主管也建议我也使用它。

我的问题是:java.io中的File和org.apache.commons.vfs2中的FileObject之间在概念上有什么区别?

我已经阅读了FileObjectFile上的文档,而我真正想要的是这两个类的概念区别。例如:FileObject是File周围的某种包装吗?我在它们的继承树中看不到太多共同之处,因此在我看来FileFile在任何地方都使用File。

最佳答案

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

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

java.io.File是对本地文件的引用,到此为止。

FileObject抽象的好处是您可以编码到单个接口,而不必关心组成该文件的字节实际来自何处(即本地文件系统,通过SSH通过SFTP,通过HTTP等流式传输)。

10-04 18:26