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

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

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

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

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

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

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

  • 由于同样的原因, FileInputStreamFileOutputStreamFileReaderFileWriter不能与VFS一起使用。

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

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

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