在Java中将字节[]转换为“文件”[重复]
Posted
技术标签:
【中文标题】在Java中将字节[]转换为“文件”[重复]【英文标题】:Convert bytes[] to 'File' in Java [duplicate] 【发布时间】:2014-06-25 08:50:52 【问题描述】:我有一个字节数组
bytes[] doc
如何从这些字节创建new File
的实例?
【问题讨论】:
你是问如何将二进制文件写入文件系统? Google 获取“Java IO 教程”。 Java Tutorial: Basic IO @Bob:内存中的文件不存在。文件位于文件系统上。 File 的实例不包含任何字节。它只是一个文件path。读取文件将始终从文件系统中读取,而不是从内存中的字节数组中读取。如果要从内存中的字节数组中读取,请使用 ByteArrayInputStream。如果没有,请告诉我们您真正想要实现的目标。 关于这个问题的 cmets 非常清楚地表明,OP 想要的不是其他问题中所要求的。对于任何愿意阅读的人来说,很明显这不是重复的。为什么关门了? 【参考方案1】: try (FileOutputStream fileOuputStream = new FileOutputStream("filename"))
fileOuputStream.write(byteArray);
【讨论】:
你最好在 finally 块中关闭,或者更好的是,使用 try-with-resources 语句。如果发生异常,您的代码将泄漏资源。 但是OP wrote:“不,只是内存中的[一个] File 实例。我不需要将它写入[the] 文件系统。”跨度> 【参考方案2】:一个将字节[]写入文件的简单程序。
import java.io.File;
import java.io.FileOutputStream;
public class BytesToFile
public static void main(String[] args)
byte[] demBytes = null; // Instead of null, specify your bytes here.
File outputFile = new File("LOCATION TO FILE");
try ( FileOutputStream outputStream = new FileOutputStream(outputFile); )
outputStream.write(demBytes); // Write the bytes and you're done.
catch (Exception e)
e.printStackTrace();
注意:try-catch 语句需要 Java 版本 >= 1.7。请记住将字节从 null 更改为对应于您的字节数组。
【讨论】:
在您发布此消息前大约 10 分钟,OP 发表了一条评论,解释说这不是他想要的。 在 iPad 上写了 10 分钟 :( 我猜别人会觉得它很有用。 但是OP wrote:“不,只是内存中的[一个] File 实例。我不需要将它写入[the] 文件系统。”跨度> 【参考方案3】:试试这个:
Files.write(Paths.get("filename"), bytes);
【讨论】:
但是OP wrote:“不,只是内存中的[一个] File 实例。我不需要将它写入[the] 文件系统。”跨度>以上是关于在Java中将字节[]转换为“文件”[重复]的主要内容,如果未能解决你的问题,请参考以下文章