VFS把对各种各样的的文件系统的访问封装成统一的应用程序接口,这大大的简化了应用程序本身代码的复杂度。Apache上的项目的稳定性也是有目共睹的,目前VFS支持下面一些文件系统,当然你也可以自行进行扩展。
而这些文件系统中的文件被封装成了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
参考:https://www.jianshu.com/p/1f2f851b61c5 vfs 虚拟文件系统 Commons VFS 支持文件系统 1.本地文件 [file://]absolute-path 2. Zip, Jar and Tar [zip://arch-file-uri!absolute-path] [jar://arch-file-uri!absolute-path] [tar:/
commons-vfs是一个强大的虚拟文件系统,为操作各种各样的文件系统提供了统一API。这里使用的是commons-vfs2。 直接代码 package dusk; import org.apache.commons.vfs2.*; import org.apache.commons.vfs2.impl.DefaultFileMonitor; import org.junit.Test; i
package com.visystem.util; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.apache.commons.io.FileUtils; import org.apache.commons
几周前,我评估了一些用于Java的SSH库。 对它们的主要要求是在远程计算机上进行文件传输和文件操作。 因此,它存在一个基于SSH,SSH文件传输协议(或SFTP)的网络协议。 因此,我需要一个支持SFTP的SSH库。 一项研究表明,它退出了许多用于Java的SSH库。 为了进行比较,我将库的数量减少到三个。 我选择JSch,SSHJ和Apache的Commons VFS,以获得更深入的了解。 它
这段时间又开始忙起来了,所以apache commons-vfs源码赏析就暂时搁置起来了,在这里先写一下apache commons-vfs的一些简单的用法,也可以去参考apache commons-vfs源文件中自己提供的一些demo.废话不多说,直接上代码 package com.zzg.util; import java.io.IOException; import java.io.Inpu
commons-vfs(文件系统工具) 文件读取封装 *** 按习惯,一起看一下几个实例: 读取文件 ` byte[] res = VFSUtils.readFileToByteArray("d:/test/test1.txt"); byte[] res = VFSUtils.readFileToByteArray("tar:gz:http://anyhost/dir/mytar.tar.gz!/
原文链接:http://pro.ctlok.com/2011/06/apache-commons-vfs-for-sftp.html 在 Java 使用 FTP 去上載檔案,下載檔案或去做其他操作也是很簡單,因為 Java API 已經包括了對 FTP 的支援。如果不是使用 FTP,而是使用 SFTP: SSH File Transfer Protocol,使用Java API 實作便有點麻煩了。
apache-comnons系列之commons-vfs2 学习笔记 概述 参考 http://p7engqingyang.iteye.com/blog/1702429 http://blog.csdn.net/ffm83/article/details/42080387 VFS The main entry point for the VFS. Used to create {@link Fil
有兴趣的同学可以移步笔者的个人博客 更多博客 Apache VFS 简要介绍 VFS (虚拟文件系统),可以通过程序 去操作文件系统,这里说的文件系统是一个泛称,不同的文件系统有着不同的操作权限,它具体包括下表的几种文件系统(红色标记的是我们之后可能会用到的文件系统): Name Authentication Read Write Create/Delete Random Version Rena
通过VFS对文件进行一些操作,包括写入、读取文件,判断文件是否可读可写等示例。Apache commons VFS包和apache commons的其他基础性类有非常密切的关系。 整理了一些常用的方法,源代码如下: package test.ffm83.commons.VFS; import java.io.FileNotFoundException; import java.io.IOExcep
package test.vfs; import java.io.File; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.vfs2.FileChangeEvent; import org.apache.commons.
本系列文章导航 Apache VFS(1): 基本介绍 Apache VFS(2): 文件的监听和监控 Apache VFS(3): 文件过滤器和选择器 Apache VFS(4): 事件 Apache VFS(5): 使用它! Apache VFS(6): 几个重要的概念性接口 Apache VFS(7): 文件管理器解析文件的方法 使用Apache VFS比较简单,第一个面对的对象是org.
文件系统抽象层 - VFS 文件系统抽象层是把不同文件系统的对外共性接口提取出来,形成一个函数指针数组,这样,通用文件系统访问接口层只需访问文件系统抽象层,而不需关心具体文件系统的实现细节和接口。
这篇文章有一个高度支持的评论: 如何创建新java。io。内存中的文件? 其中,Sorin Postelnicu提到使用Apache Commons VFS RAM文件作为一种将内存中的文件传递给需要java的API的方法。io。文件(我正在解释……我希望我没有错过要点)。 在阅读相关帖子的基础上,我提出了以下示例代码: 所以,我想我有一个内存文件叫做ram://virtual/test.txt内
文件系统是负责文件管理的操作系统的一部分。 它提供了一种机制来存储数据和访问文件内容,包括数据和程序。一些操作系统将所有内容视为Ubuntu文件。 文件系统处理以下问题 - 文件结构 - 前面已经了解可存储文件的各种数据结构。文件系统的任务是保持最佳的文件结构。 恢复可用空间 - 每当文件从硬盘中删除时,磁盘中都会创建一个可用空间。 可能有很多这样的空间需要被恢复,以便将它们重新分配给其他文件。
文件系统 之前我们在加载 QEMU 的时候引入了一个磁盘镜像文件,这个文件的打包是由 rcore-fs-fuse 工具 来完成的,它会根据不同的格式把目录的文件封装成到一个文件系统中,并把文件系统封装为一个磁盘镜像文件。然后我们把这个镜像文件像设备一样挂载在 QEMU 上,QEMU 就把它模拟为一个块设备了。接下来我们需要让操作系统理解块设备里面的文件系统。 Simple File System
基本概念 文件操作命令 命令 说明 cp file1 file2 cp file1 file2 file3 dir 拷贝文件 mv file1 file2 mv file1 file2 file3 dir 移动文件 rm file1 rm -f file1 file2 file3 删除文件 mkdir dir mkdir -p par1/par2/dir 创建文件夹 cp -r dir1 dir2
简单的文件读写是通过uv_fs_*函数族和与之相关的uv_fs_t结构体完成的。 note libuv 提供的文件操作和 socket operations 并不相同。套接字操作使用了操作系统本身提供了非阻塞操作,而文件操作内部使用了阻塞函数,但是 libuv 是在线程池中调用这些函数,并在应用程序需要交互时通知在事件循环中注册的监视器。 所有的文件操作函数都有两种形式 - 同步(synchron