从 byte[] 创建一个临时 java.io.File

Posted

技术标签:

【中文标题】从 byte[] 创建一个临时 java.io.File【英文标题】:Create a temporary java.io.File from byte[] 【发布时间】:2013-10-01 03:15:59 【问题描述】:

我必须使用像saveAttachment(Attachment attachment) 这样的现有方法,其中Attachment 有一个File attribute

我的问题是我正在检索byte[],我想使用这种方法保存它。我怎样才能有一个“本地”File 只是为了保存?

对不起,如果我的问题很愚蠢,我对 Java 中的文件了解不多。

【问题讨论】:

从哪里获取字节[]?您想将数据保存在哪里?需要更多上下文和解释 我使用一种方法保存数据,该方法本身使用 alfresco community sdk 来存储文件,所以我无法更改它的保存方式。我从不提供其他信息的网络服务中检索字节。由于这些原因,我没有在我的问题中提供更多细节。 【参考方案1】:
File tempFile = File.createTempFile(prefix, suffix, null);
FileOutputStream fos = new FileOutputStream(tempFile);
fos.write(byteArray);

查看相关文档:

File.createTempFile(prefix, suffix, directory);

【讨论】:

【参考方案2】:

从文件中读取所有字节或行

Path file = ...;
byte[] fileArray;
fileArray = Files.readAllBytes(file);

将所有字节或行写入文件

Path file = ...;
byte[] buf = ...;
Files.write(file, buf);

【讨论】:

【参考方案3】:

你很幸运。

File.createTempFile(String prefix, String suffix)

在操作系统的默认临时目录中创建一个文件,保证您可以写入。

【讨论】:

以上是关于从 byte[] 创建一个临时 java.io.File的主要内容,如果未能解决你的问题,请参考以下文章

我想在Java中反转一个字符串并删除和复制

go语言学习--go的临时对象池--sync.Pool

从 byte[] 创建 AudioClip

如何从byte []创建内部JarFile对象

将 Byte[] 解析为文件而不保存它

从byte []创建com.lowagie.text.Image的实例