Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create a directory in memory? pseudo file system / virtual directory

For my usecase, I would like to have an in memory directory to store some files for a very short time. Actually I compile source code to .class files at runtime, classload and execute them. The clean way would be to create a virtual directory and let the compiler create .class files there. Of course I could use a temp directory, but I have to clean it before compiling, I don't know if I'm the only one using it, etc.

So, is and how is it possible to create a virtual, in the meaning of in memory, directory in Java?

like image 340
Stefan K. Avatar asked Dec 22 '22 16:12

Stefan K.


2 Answers

In Java 6 it is not really possible to do this kind of thing within a Java application. You need to rely on the OS platform to provide the the pseudo-filesystem.

In Java 7, the NIO APIs have been extended to provide an API that allows you to define new file systems; see FileSystemProvider.

Apache Commons VFS is another option, but it has a couple of characteristics that may cause problems for existing code and (3rd-party) libraries:

  • Files and directories in VFS are named using urls, not File objects. So code that uses File for file manipulation won't work.

  • FileInputStream, FileOutputStream, FileReader and FileWriter won't work with VFS for much the same reason.

like image 129
Stephen C Avatar answered Dec 29 '22 01:12

Stephen C


It sounds like you could use a ramdisk. There are many apps out there that will do this, what you use would depend on the target OS. I don't know of any native Java API that supports this.

like image 28
Unsigned Avatar answered Dec 28 '22 23:12

Unsigned