java.io.File诉org.apache.commons.vfs2.FileObject
java.io.File v. org.apache.commons.vfs2.FileObject
我正在尝试监视一个文件夹以查找批处理文件,该批处理文件将被拖放到该文件夹以更新 Web 应用程序。该应用程序已经使用了 Apache vfs2 库,我的领导建议我也使用它。
我的问题是:java.io 中的 File 和 org.apache.commons.vfs2 中的 FileObject 在概念上有什么区别?
我已经阅读了 FileObject and File 上的文档,我真正想要的是这两个 类 的概念区别。例如:FileObject 是 File 的某种包装器吗?我在他们的继承树中看不到太多共同点,所以在我看来 FileObject 没有在任何地方使用 File。
VFS2 FileObject
是一个与特定存储机制无关的接口(这是 VFS2 文件系统的要点)
A FileObject
可以表示本地文件系统文件、SFTP、FTP、HTTP 或 WebDav 服务器上的文件,或压缩存档中的文件,或任何您能想到的其他东西可能包含构成文件的字节集合。
java.io.File
是对本地文件的引用,到此结束。
FileObject
抽象的好处是您可以编码到单个接口,而不用关心构成该文件的字节实际上来自哪里(即本地文件系统,通过 SFTP 通过 SSH,通过 HTTP 等)
我正在尝试监视一个文件夹以查找批处理文件,该批处理文件将被拖放到该文件夹以更新 Web 应用程序。该应用程序已经使用了 Apache vfs2 库,我的领导建议我也使用它。
我的问题是:java.io 中的 File 和 org.apache.commons.vfs2 中的 FileObject 在概念上有什么区别?
我已经阅读了 FileObject and File 上的文档,我真正想要的是这两个 类 的概念区别。例如:FileObject 是 File 的某种包装器吗?我在他们的继承树中看不到太多共同点,所以在我看来 FileObject 没有在任何地方使用 File。
VFS2 FileObject
是一个与特定存储机制无关的接口(这是 VFS2 文件系统的要点)
A FileObject
可以表示本地文件系统文件、SFTP、FTP、HTTP 或 WebDav 服务器上的文件,或压缩存档中的文件,或任何您能想到的其他东西可能包含构成文件的字节集合。
java.io.File
是对本地文件的引用,到此结束。
FileObject
抽象的好处是您可以编码到单个接口,而不用关心构成该文件的字节实际上来自哪里(即本地文件系统,通过 SFTP 通过 SSH,通过 HTTP 等)