【发布时间】:2013-07-09 19:49:32
【问题描述】:
如何在内存而不是硬盘上创建新的File(来自java.io)?
我正在使用 Java 语言。我不想将文件保存在硬盘上。
我遇到了一个糟糕的 API (java.util.jar.JarFile)。它期待File file 的String filename。我没有文件(只有byte[] 内容)并且可以创建临时文件,但这不是很好的解决方案。我需要验证签名 jar 的摘要。
byte[] content = getContent();
File tempFile = File.createTempFile("tmp", ".tmp");
FileOutputStream fos = new FileOutputStream(tempFile);
fos.write(archiveContent);
JarFile jarFile = new JarFile(tempFile);
Manifest manifest = jarFile.getManifest();
任何关于如何在不创建临时文件的情况下获得清单的示例都将不胜感激。
【问题讨论】:
-
所以你只想要内存中的字节?
-
你想用这个
File做什么? -
一个
File定义在硬盘上。 -
@UwePlonus 没有...
new File("/dev/null") -
哇,StackOverflow 缺乏想象力真是令人震惊。有人可能需要一个简单的内存文件,因为他们使用的接口需要一个文件。该接口应该是为 InputStream 编写的,但事实并非如此。临时文件似乎有点矫枉过正,所以内存中的 java.io.File 会更好。