Erstellen Sie eine Datei aus einem ByteArrayOutputStream


77

Kann jemand erklären, wie ich ein Dateiobjekt bekommen kann, wenn ich nur ein habe ByteArrayOutputStream. Wie erstelle ich eine Datei aus einem ByteArrayOutputStream?

Antworten:


137

Sie können dies mit a FileOutputStreamund der writeToMethode tun .

ByteArrayOutputStream byteArrayOutputStream = getByteStreamMethod();
try(OutputStream outputStream = new FileOutputStream("thefilename")) {
    byteArrayOutputStream.writeTo(outputStream);
}

Quelle: "Erstellen einer Datei aus ByteArrayOutputStream in Java." zu Code-Erfindungen


20
und dann auch schließen.
Markus Mikkolainen

1
@ MarkusMikkolainen ja .. offensichtlich :)
Suresh Atta

9
Oder verwenden Sie Java 7 versuchen Sie mit Ressourcen Anweisung, um endgültig Block vollständig loszuwerden;) stackoverflow.com/questions/2016299/…
dimuthu

Was ist, wenn ich keinen "thefilename" habe, wenn ich einen Byte-Stream von diesem Excel habe? Was ist dann der Weg?
Dänisch

26

Sie können hierfür einen FileOutputStream verwenden.

FileOutputStream fos = null;
try {
    fos = new FileOutputStream(new File("myFile")); 
    ByteArrayOutputStream baos = new ByteArrayOutputStream();

    // Put data in your baos

    baos.writeTo(fos);
} catch(IOException ioe) {
    // Handle exception here
    ioe.printStackTrace();
} finally {
    fos.close();
}

10
Ihr Code funktioniert nicht fosim tryBlock. Auch new File()ist nicht erforderlich.
Ludovic Guillaume

Es ist gut, dass er "new File ()" hinzugefügt hat. Für den Leser ist es einfacher zu wissen, dass ein Dateikonstruktor verfügbar ist.
Buffalo

Dies scheint für Android erforderlich zu sein.
Keith Holliday

Kann mit fos in try-with-resources () verbessert werden und das endgültige
vikingsteve
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.