如何在内存中创建目录? 伪文件系统/虚拟目录
对于我的用例,我想在内存目录中存储一些文件很短的时间。 实际上我在运行时将源代码编译为.class
文件,类加载并执行它们。 干净的方法是创建一个虚拟目录,让编译器在那里创建.class文件。 当然我可以使用临时目录,但是我必须在编译前清理它,我不知道我是否是唯一使用它的人,等等。
那么,是否可以在Java中创建一个虚拟的,在内存的意义上的目录?
在Java 6中,实际上不可能在Java应用程序中执行此类操作。 您需要依靠OS平台来提供伪文件系统。
在Java 7中,NIO API已经扩展为提供允许您定义新文件系统的API; 请参阅FileSystemProvider
。
Apache Commons VFS是另一种选择,但它有一些特性可能会导致现有代码和(第三方)库出现问题:
-
VFS中的文件和目录使用URL命名,而不是使用
File
对象命名。 因此,使用File
进行文件操作的代码将不起作用。 -
由于同样的原因,
FileInputStream
,FileOutputStream
,FileReader
和FileWriter
不能与VFS一起使用。
听起来你可以使用ramdisk。 有很多应用程序会执行此操作,您使用的将取决于目标操作系统。 我不知道任何支持它的本机 Java API。
我不确定这是否有用,但请检查Apache Commons VFS 。
看来你需要的是内存文件系统。