我想在Java中创建一个简单的内存中文件系统,它有一个根目录并且能够创建新的子目录。在目录中,我们可以创建新文件,写入它们,从中读取,删除它们并重命名它们。能否请您从何处开始提供一些建议(简单的代码或资源)。
答案 0 :(得分:16)
自定义文件系统提供程序必须实现java.nio.file.spi.FileSystemProvider类。文件系统提供程序由URI方案标识,例如文件,jar,内存,cd。
以下链接提供了良好的开始信息
http://docs.oracle.com/javase/7/docs/technotes/guides/io/fsp/filesystemprovider.html
下面的链接(不在内存文件系统中)是关于虚拟文件系统的。它讨论了一些设计问题,可以帮助您决定创建自己的文件系统。
http://www.flipcode.com/archives/Programming_a_Virtual_File_System-Part_I.shtml
但是你总是可以使用已经构建和测试的代码。这将更快,更容易维护,你将在错误条件下获得支持。
看看jimfs(Java 7+的内存文件系统)
https://github.com/google/jimfs
另请参阅
Commons Virtual File System http://commons.apache.org/proper/commons-vfs/
marschall(JSR-203文件系统的内存实现) https://github.com/marschall/memoryfilesystem
答案 1 :(得分:4)
您可以使用Google的Jimfs和java 7 NIO包在Java中创建内存文件系统。
请参阅此链接。在这里,您将获得示例教程: create In-memory file system in java
答案 2 :(得分:3)
在之前的回答中提到过Jimfs,但memoryfilesystem处理的更多。
使用示例:
final FileSystem fs = MemoryFileSystem.newLinux().build("myfs");
final Path dir = fs.getPath("thedir");
Files.createDirectory(dir);
等等。使用java.nio.file API来操作此文件(File
将无效!)。有关详细信息,请参阅here。