web-dev-qa-db-ja.com

バイト[]をファイルにJava

Javaでバイト配列をファイルに変換する方法は?

byte[] objFileBytes, File objFile
28
farajnew

ファイルオブジェクトには、ファイルのコンテンツが含まれていません。これは、ハードドライブ(またはSSD、USBドライブ、ネットワーク共有などの他のストレージメディア)上のファイルへのポインターにすぎません。だから私はあなたが望むのはそれをハードドライブに書き込むことだと思う。

Java APIのいくつかのクラスを使用してファイルを作成する必要があります

BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(yourFile));
bos.write(fileBytes);
bos.flush();
bos.close();

OutputStreamの代わりにWriterを使用することもできます。ライターを使用すると、テキスト(String、char [])を書くことができます。

BufferedWriter bw = new BufferedWriter(new FileWriter(yourFile));

すべてをメモリに保持し、何も書きたくないと言ったので、ByteArrayInputStreamを使用しようとするかもしれません。これは、ほとんどのクラスに渡すことができるInputStreamをシミュレートします。

ByteArrayInputStream bais = new ByteArrayInputStream(yourBytes);
84
public void writeToFile(byte[] data, String fileName) throws IOException{
  FileOutputStream out = new FileOutputStream(fileName);
  out.write(data);
  out.close();
}
24
Caner

FileOutputStreamを使用します。

FileOutputStream fos = new FileOutputStream(objFile);
fos.write(objFileBytes);
fos.close();
5
perp

OK、あなたはそれを求めました:

File file = new File("myfile.txt");

// convert File to byte[]
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(file);
bos.close();
oos.close();
byte[] bytes = bos.toByteArray();

// convert byte[] to File
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bis);
File fileFromBytes = (File) ois.readObject();
bis.close();
ois.close();

System.out.println(fileFromBytes);

しかし、これは無意味です。何を達成しようとしているかを指定してください。

4
Adriaan Koster

レンダリング方法PDF を参照してください。 PDFビューアで表示できます。

1
pap