java - una - ¿Cómo crear un directorio en la memoria? sistema de pseudo archivo/directorio virtual
listar archivos de una carpeta y subcarpetas java (4)
No estoy seguro si esto es útil o no, pero revise Apache Commons VFS .
Parece que lo que necesitas es un sistema de archivos de memoria.
Para mi caso de uso, me gustaría tener un directorio en la memoria para almacenar algunos archivos durante un tiempo muy corto. En realidad, compilo el código fuente en archivos .class
en tiempo de ejecución, clasifico y los ejecuto. La manera más limpia sería crear un directorio virtual y dejar que el compilador cree allí archivos .class. Por supuesto que podría usar un directorio temporal, pero tengo que limpiarlo antes de compilar, no sé si soy el único que lo usa, etc.
Entonces, ¿cómo y cómo es posible crear un directorio virtual, en el sentido de en memoria, en Java?
Parece que podrías usar un ramdisk. Hay muchas aplicaciones que harán esto, lo que uses dependerá del sistema operativo objetivo. No conozco ninguna API Java nativa que admita esto.
Para el NIO de Java7 hay
En Java 6 no es posible hacer este tipo de cosas dentro de una aplicación Java. Debe confiar en la plataforma del sistema operativo para proporcionar el pseudo sistema de archivos.
En Java 7, las API de NIO se han ampliado para proporcionar una API que le permita definir nuevos sistemas de archivos; ver FileSystemProvider
.
Apache Commons VFS es otra opción, pero tiene un par de características que pueden causar problemas para el código existente y las bibliotecas (de terceros):
Los archivos y directorios en VFS se nombran usando urls, no objetos de
File
. Por lo tanto, el código que usaFile
para la manipulación de archivos no funcionará.FileInputStream
,FileOutputStream
,FileReader
yFileWriter
no funcionarán con VFS por la misma razón.