内存中的任何文件系统库?

时间:2013-03-26 17:15:20

标签: java c++ .net c go

我想知道c,c ++,golang,java,.net

内存中是否有任何文件系统库

目的是将临时文件保存在内存中,而不是用户访问,仅供程序内部使用,因此我不需要ram驱动。

4 个答案:

答案 0 :(得分:3)

有一个名为JimFS的Google开发库,用于使用Apache 2许可证下的Java NIO开源创建内存中文件系统,并在GitHub上提供 它很容易使用

try (FileSystem fs = Jimfs.newFileSystem(Configuration.unix())) {
  Path foo = fs.getPath("/foo");
  Files.createDirectory(foo);

  Path hello = foo.resolve("hello.txt"); // /foo/hello.txt
  Files.write(hello, ImmutableList.of("hello world"), StandardCharsets.UTF_8);

  // Close the FileSystem when you're done with it so it can be garbage collected.
}

答案 1 :(得分:1)

如果使用java:commons vfs支持RAM文件系统类型

答案 2 :(得分:0)

在C ++中,最简单的解决方案是对我们来说 std::ostringstream将数据放入字符串中,然后放入 std::istringstream重新阅读。虽然已弃用, strstream将允许您避免动态分配和 副本(假设您知道数据的最大大小 在手之前)。或者您可以轻松编写自己的streambuf 做到这一点。或者,如果您不需要格式化,当然,您可以 将数据推送到std::vector

IIRC,Java也有基于内存的流(基于Byte [], 我想)。

答案 3 :(得分:0)

.Net有一个可以使用的MemoryStream类(System.IO): http://msdn.microsoft.com/en-us/library/system.io.memorystream.aspx