Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-将字节数组或字符串强制转换为(虚拟)文件_Java_File_Bytearray_Inputstream - Fatal编程技术网

Java-将字节数组或字符串强制转换为(虚拟)文件

Java-将字节数组或字符串强制转换为(虚拟)文件,java,file,bytearray,inputstream,Java,File,Bytearray,Inputstream,简言之:我想将字节数组或字符串强制转换为文件对象,以便我可以将此文件对象用作签名无法更改的方法的参数。我想在内存中实现这一点,而不必触摸驱动器 我在这里读了很多,包括关于使用File.createTempFile的建议,但我觉得我们仍然在创建物理文件,即使只是临时的 全文:我正在帮助一个非常复杂的数据恢复项目。我们现在有一个超过400GB的磁盘映像,它是2MB部分的集合。我想要恢复的一些文件从一个开始,在另一个2MB部分结束。我们有一个清单,列出了我们在哪里看到的开始和结束,所以现在我想把开始和

简言之:我想将字节数组或字符串强制转换为文件对象,以便我可以将此文件对象用作签名无法更改的方法的参数。我想在内存中实现这一点,而不必触摸驱动器

我在这里读了很多,包括关于使用File.createTempFile的建议,但我觉得我们仍然在创建物理文件,即使只是临时的

全文:我正在帮助一个非常复杂的数据恢复项目。我们现在有一个超过400GB的磁盘映像,它是2MB部分的集合。我想要恢复的一些文件从一个开始,在另一个2MB部分结束。我们有一个清单,列出了我们在哪里看到的开始和结束,所以现在我想把开始和结束缝合在一起,然后检查结果是否是一个有效的文件,以某种适当的格式。(这些都是背景信息,请不要扯进去!)

我有一个java类(我不能更改),可以读取并验证这些文件。所以我想简单地将我的拼合文件输入到这个方法中。如果成功,我将转到下一个“开始部分”,否则我将尝试将开始部分与不同的结束部分匹配


我希望将“缝合在一起的文件”保存在内存中(而不是将其写入临时文件),因为很明显我需要高效率。这是最后的手段;事实上,我们需要将数千个开始与数千个结束相匹配。但同样,让我们继续回答这个问题:)

如果您的Java类接受文件系统中的文件路径,那么是的,您必须在文件系统中创建一个文件,然后向Java类提供文件路径。您可以通过在RAM驱动器中创建文件来加快速度,但它仍然是一个文件。如果类也接受(精心设计的类也接受),那么您可以使用。类接受输入数据的另一个可能接口是machinery,它是抽象
java.io.InputStream

A
java.io.File
的NIO模拟接口,只表示路径和文件名,而不是文件本身的实际内容。如果API采用
java.io.File
,我能想到的唯一简单的方法就是使用RAM驱动器…嗯,我想我确实需要一个RAM驱动器。。。听起来,若文件只能指向“实际文件”,那个么就并没有其他方法了。谢谢这是什么操作系统?我在Windows7上写程序。我无法轻松访问其他平台进行工作。。。但是我看到在Windows上也有很多免费的工具来创建RAM驱动器。