如何在内存中创建目录?伪文件系统/虚拟目录

时间:2011-04-01 02:37:02

标签: java file filesystems

对于我的用例,我想在内存目录中存储一些文件很短的时间。实际上我在运行时编译源代码到.class文件,加载并执行它们。干净的方法是创建一个虚拟目录,让编译器在那里创建.class文件。当然我可以使用临时目录,但我必须在编译之前清理它,我不知道我是否是唯一使用它的人等等。

那么,是不是可以在Java中创建一个虚拟的,在内存的意义上呢?

4 个答案:

答案 0 :(得分:8)

在Java 6中,实际上不可能在Java应用程序中执行此类操作。您需要依靠OS平台来提供伪文件系统。

在Java 7中,NIO API已经扩展为提供允许您定义新文件系统的API;见FileSystemProvider

Apache Commons VFS是另一种选择,但它有一些特性可能会导致现有代码和(第三方)库出现问题:

  • VFS中的文件和目录使用网址命名,而不是File个对象。因此,使用File进行文件操作的代码将无效。

  • FileInputStreamFileOutputStreamFileReaderFileWriter出于同样的原因,无法与VFS配合使用。

答案 1 :(得分:2)

听起来你可以使用ramdisk。有很多应用程序会执行此操作,您使用的将取决于目标操作系统。我不知道任何支持此功能的 native Java API。

答案 2 :(得分:1)

我不确定这是否有用,但请检查Apache Commons VFS

看来你需要的是内存文件系统。

答案 3 :(得分:0)