在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中将字节[]转换为“文件”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在Java中将字符串转换为字节[重复]

在java中将字符串数组元素转换为字节数组[重复]

在python中将字节转换为BufferedReader [重复]

如何在Go中将字节数组转换为字符串[重复]

在此算法中将字节数组转换为字符串时出错[重复]

如何在c ++中将int数组转换为字节数组[重复]