我想知道内存中是否有任何用于 c、c++、golang、java、.net 的文件系统库
目的是将临时文件保存在内存中,不供用户访问,仅供程序内部使用,所以我不需要ram驱动器。
有一个名为JimFS的 Google 开发库,用于使用 Java NIO 创建内存文件系统,它是在 Apache 2 许可证下开源的,可在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.
}
如果使用 java : commons vfs支持RAM文件系统类型
在 C++ 中,最简单的解决方案是将
std::ostringstream
数据放入字符串中,然后
std::istringstream
重新读取它。尽管已弃用,
strstream
但可以避免动态分配和副本(假设您事先知道数据的最大大小)。或者您可以轻松编写自己的代码streambuf
来完成。或者,如果您不需要格式化,当然,您可以将数据推送到std::vector
.
IIRC,Java 也有基于内存的流(我认为是基于 Byte[])。
.Net 有一个可以使用的 MemoryStream 类(System.IO):http: //msdn.microsoft.com/en-us/library/system.io.memorystream.aspx