在Java中将byte []写入File

far*_*new 29 java arrays file-io file

如何在Java中将字节数组转换为File?

byte[] objFileBytes, File objFile
Run Code Online (Sandbox Code Playgroud)

Mar*_*aux 86

一个文件对象不包含文件的内容.它只是指向硬盘驱动器(或其他存储介质,如SSD,USB驱动器,网络共享)上的文件的指针.所以我认为你想要的是把它写到硬盘上.

您必须使用Java API中的某些类来编写该文件

BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(yourFile));
bos.write(fileBytes);
bos.flush();
bos.close();
Run Code Online (Sandbox Code Playgroud)

您也可以使用Writer而不是OutputStream.使用编写器将允许您编写文本(String,char []).

BufferedWriter bw = new BufferedWriter(new FileWriter(yourFile));
Run Code Online (Sandbox Code Playgroud)

既然你说你想把所有东西都留在内存中而不想写任何东西,你可能会尝试使用ByteArrayInputStream.这模拟了一个InputStream,您可以将其传递给大多数类.

ByteArrayInputStream bais = new ByteArrayInputStream(yourBytes);
Run Code Online (Sandbox Code Playgroud)


Can*_*ner 24

public void writeToFile(byte[] data, String fileName) throws IOException{
  FileOutputStream out = new FileOutputStream(fileName);
  out.write(data);
  out.close();
}
Run Code Online (Sandbox Code Playgroud)

  • 文件只是文件和目录路径名的抽象表示.它不包含文件的内容.根据定义,`file`不能在内存中,所以你不能做你想要的.无论如何,你为什么要这样做,它没有多大意义?如果你解释一下,也许人们可以给出其他建议. (2认同)

per*_*erp 5

使用FileOutputStream.

FileOutputStream fos = new FileOutputStream(objFile);
fos.write(objFileBytes);
fos.close();
Run Code Online (Sandbox Code Playgroud)