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

Ste*_* K. 4 java filesystems file

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

那么,是什么以及如何在内存的意义上创建一个虚拟的Java目录呢?

Ste*_*n C 8

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

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

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

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

  • FileInputStream,出于同样的原因FileOutputStream,FileReader并且FileWriter不会与VFS一起使用.