如何在不创建相应文件的情况下获取Java文件对象

3

我有一个接口需要传入Java File对象,但我想要传入一个字符串。不写入磁盘的情况下,我该如何创建一个适合传给该接口的对象?

我拥有必要的数据/元数据,比如长度、时间戳、内容和文件名,我想将它们包含在File中。


你怎样将一个字符串发送到文件而不将其写入硬盘?你是指像将文件存储在内存中,以便稍后可以访问吗? - ghostbust555
1
我对Java API非常熟悉,但我认为你不能这样做。你可以创建一个File的子类,并按照自己的意愿进行实现(它不是final)。但是当你的接口实现尝试从你的File中创建FileInputStream或FileOutputStream时,程序将会失败。 - Giulio Franco
1
很遗憾,在Java 6中无法实现这一点。因此,如果您正在使用旧框架,则没有办法。您可能能够设置内存映射文件,但这将是特定于平台的。在Java 7中,您可以编写一个自定义文件系统提供程序,我相信它能够实现您想要的功能。 - aioobe
参见:https://dev59.com/imw05IYBdhLWcg3wsz3N - DannyMo
@aioobe 即使您创建了一个 FileSystemProvider,您也无法创建一个 File,只能创建一个 FileStore 或输入/输出流。即使没有底层文件,您也无法拥有像真实文件一样工作的 File 对象。 - Giulio Franco
1个回答

0

所以,我不知道我是否理解正确,但是使用{{link1:Common VFS的临时文件系统}}怎么样?

URI格式为tmp://[绝对路径]

文档说:

提供对临时文件系统或记事本的访问,当Commons VFS关闭时将删除。 临时文件系统由本地文件系统支持。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接