406 Stimmen

byte[] zu Datei in Java

Mit Java:

Ich habe eine byte[] die eine Datei darstellt.

Wie schreibe ich dies in eine Datei (z.B.. C:\myfile.pdf )

Ich weiß, dass es mit InputStream gemacht wird, aber ich kann nicht scheinen, um es heraus zu arbeiten.

614voto

bmargulies Punkte 94152

使用方法 Apache Commons IO

FileUtils.writeByteArrayToFile(new File("pathname"), myByteArray)

Oder, wenn Sie darauf bestehen, sich selbst Arbeit zu machen...

try (FileOutputStream fos = new FileOutputStream("pathname")) {
   fos.write(myByteArray);
   //fos.close(); There is no more need for this line since you had created the instance of "fos" inside the try. And this will automatically close the OutputStream
}

229voto

SharkAlley Punkte 10991

Ohne Bibliotheken:

try (FileOutputStream stream = new FileOutputStream(path)) {
    stream.write(bytes);
}

Mit Google Guava :

Files.write(bytes, new File(path));

Mit Apache Commons :

FileUtils.writeByteArrayToFile(new File(path), bytes);

Alle diese Strategien erfordern, dass Sie irgendwann auch eine IOException abfangen.

161voto

TBieniek Punkte 4593

Eine weitere Lösung mit java.nio.file :

byte[] bytes = ...;
Path path = Paths.get("C:\\myfile.pdf");
Files.write(path, bytes);

47voto

Ebenfalls seit Java 7 ist eine Zeile mit java.nio.file.Files:

Files.write(new File(filePath).toPath(), data);

Dabei ist data Ihr Byte[] und filePath ein String. Sie können auch mehrere Optionen zum Öffnen von Dateien mit der Klasse StandardOpenOptions hinzufügen. Fügen Sie Throws hinzu oder umgeben Sie sie mit try/catch.

20voto

Voicu Punkte 14948

De Java 7 aufwärts können Sie die Versuch-mit-Ressourcen Anweisung, um Ressourcenverluste zu vermeiden und die Lesbarkeit des Codes zu verbessern. Mehr dazu ici .

Zum Schreiben Ihrer byteArray zu einer Datei, die Sie tun würden:

try (FileOutputStream fos = new FileOutputStream("fullPathToFile")) {
    fos.write(byteArray);
} catch (IOException ioe) {
    ioe.printStackTrace();
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X