【发布时间】:2015-01-20 01:43:51
【问题描述】:
简而言之:我想将字节数组或字符串转换为 File 对象,以便我可以将此 File 对象用作其签名的方法的参数我无法改变。我想在不接触驱动器的情况下实现这一内存。
我在这里阅读了很多similar questions,包括有关使用 File.createTempFile 的建议,但我觉得我们仍然在创建物理文件,即使它只是临时的?
完整:我正在帮助一个非常复杂的数据恢复项目。我们现在有一个超过 400GB 的磁盘映像,它是 2MB 部分的集合。我要恢复的一些文件从一个开始,到另一个 2MB 部分结束。我们有一个我们在哪里看到开始和结束的清单,所以现在我想将开始和结束缝合在一起,然后检查结果是否是一个有效的文件,采用某种专有格式。 (这是所有背景信息,我们请不要进入!)
我有一个可以读取并因此验证这些文件的 java 类(我无法更改)。所以我想简单地将我的组合文件提供给这个方法。如果成功,我将继续下一个“开始部分”,否则我尝试将开始部分与不同的结束部分匹配。
我想将“拼接在一起的文件”保留在内存中(而不是将其写入临时文件),因为很明显我需要高效率。这是最后的手段;事实上,我们需要将成千上万的开始与成千上万的结束相匹配。但同样,让我们继续这个问题:)
【问题讨论】:
-
A
java.io.File只代表路径和文件名,并不代表文件本身的实际内容。 -
如果您的 API 采用
java.io.File,我能想到的唯一简单方法就是使用 RAM 驱动器... -
嗯,我想我确实需要一个 RAM 驱动器......听起来如果 File 只能指向“一个实际文件”,就没有其他办法了。谢谢!
-
这是什么操作系统?
-
我正在 Windows 7 上编写程序。我无法轻松访问另一个平台来工作......但我看到有许多免费实用程序可以在 Windows 上创建 RAM 驱动器,也是。
标签: java file bytearray inputstream