gpt4 book ai didi

java - 是否可以创建 java RAM 磁盘以与 java.io.* API 一起使用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:46 28 4
gpt4 key购买 nike

我正在使用第 3 方库,它基本上创建了一个输出目录,其中包含不同类型的文件和子目录。我希望能够编写单元测试来确认输出是否正确。

我希望能够将库与 RAM 磁盘一起使用,这样库所做的任何事情都不会以任何方式触及实际的磁盘板。这个想法是使测试运行和清理速度非常快(丢弃 RAM 磁盘?)。

我可以使用的两个最突出的选项是 Commons VFSJSR 203 .前者对我没有用,因为我希望使用 java.io.* API 而不是 Commons VFS 类透明地工作。后者没有削减它,因为我必须使用 JDK 6(它应该是 JDK 7 的一部分)并且我不知道它是否可以与 java.io 无缝地工作。*无论如何(我不会赌上它)。

other解决方案也是如此,但我不能使用它们的原因与我不能使用 Commons VFS 的原因相同。由于相关库的复杂性,模拟是不可能的。

在我的 Linux 机器上,我可以轻松地创建一个 RAM 驱动器并使用 java.io.* API,就像我使用磁盘上的文件一样。问题是,我希望它是跨平台的,更具体地说,使磁盘设置成为测试过程的一部分,而不是外部的东西。

那么,有没有办法在 Java 中注册一个 RAM 驱动器,它可以与标准的 java.io.* API 一起使用?

最佳答案

So, is there a way to register a RAM drive in Java which would be usable with the standard java.io.* API?

不适用于 Java 6 或更早版本的 JVM。 Java 6 及更早版本不提供任何用于注册文件系统或文件系统类型的 SPI。因此,要实现一个应用程序可以像普通 FS 一样使用的 RAM FS,需要修改许多 java.io.* 类的行为。

我认为您能做的最好的事情就是使用由主机操作系统实现的 RAM FS。您应该能够从 Java 访问它,就好像它是一个普通的文件系统一样。但是,I/O 需要系统调用,因此它不会像 RAM 文件系统保存在 JVM 管理的内存中那样快。

关于java - 是否可以创建 java RAM 磁盘以与 java.io.* API 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4428217/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com