java中的内存文件系统

时间:2015-05-22 10:47:35

标签: java filesystems implementation

我想在Java中创建一个简单的内存中文件系统,它有一个根目录并且能够创建新的子目录。在目录中,我们可以创建新文件,写入它们,从中读取,删除它们并重命名它们。能否请您从何处开始提供一些建议(简单的代码或资源)。

3 个答案:

答案 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)

使用memoryfilesystem

在之前的回答中提到过Jimfs,但memoryfilesystem处理的更多。

使用示例:

final FileSystem fs = MemoryFileSystem.newLinux().build("myfs");

final Path dir = fs.getPath("thedir");

Files.createDirectory(dir);

等等。使用java.nio.file API来操作此文件(File将无效!)。有关详细信息,请参阅here