Voglio creare un semplice file system in-memory in Java, che ha una directory root ed è in grado di creare una nuova sottodirectory. Nella directory possiamo creare nuovi file, scriverci, leggere da loro, cancellarli e rinominarli. Potete dare qualche consiglio da dove cominciare (un semplice codice o reso).File system in memoria in java
risposta
È possibile creare il file system in memoria in java utilizzando il pacchetto di Jim e Java NIO di Google.
Si prega di fare riferimento a questo link. Qui verrà visualizzato un esempio di tutorial: create In-memory file system in java
Un provider di file system personalizzato deve implementare la classe java.nio.file.spi.FileSystemProvider. Un provider di file system è identificato da uno schema URI come file, jar, memoria, cd.
Questi link qui sotto forniscono buone informazioni a partire
http://docs.oracle.com/javase/7/docs/technotes/guides/io/fsp/filesystemprovider.html
Il link qui sotto (non si tratta di file system in memoria) è di circa il file system virtuale. Parla di alcuni problemi di progettazione che potrebbero aiutarti nel caso in cui decidessi di creare il tuo file system.
http://www.flipcode.com/archives/Programming_a_Virtual_File_System-Part_I.shtml
Ma si può sempre utilizzare già costruito e testato code.This sarà più veloce e più facile da mantenere e si riceveranno un sostegno in condizioni di errore.
Date un'occhiata a jimfs (un file system in memoria per Java 7+)
https://github.com/google/jimfs
Anche prendere in considerazione
Commons Virtual File System http://commons.apache.org/proper/commons-vfs/
marschall (Un'implementazione in memoria di un File system JSR-203) https://github.com/marschall/memoryfilesystem
Utilizzare memoryfilesystem.
Jimfs è stato menzionato in una risposta precedente, ma memoryfilesystem gestisce molto di più.
Esempio utilizzo:
final FileSystem fs = MemoryFileSystem.newLinux().build("myfs");
final Path dir = fs.getPath("thedir");
Files.createDirectory(dir);
ecc ecc utilizzare l'API java.nio.file per manipolare i file in questo (File
non funziona!). Vedi here per maggiori dettagli.
Ho bisogno di 'File' per lavorare in memoria sia per la lettura che per la scrittura. Qualche idea? – Jus12
Purtroppo jimfs presenta diverse limitazioni. La soluzione migliore è utilizzare [memoryfilesystem] (https://github.com/marschall/memoryfilesystem). – fge