Wie nehme ich eine ByteArrayInputStream und habe seinen Inhalt als Datei auf dem Dateisystem gespeichert

StackOverflow https://stackoverflow.com/questions/2824674

Frage

ich ein Bild haben, das in Form eines ByteArrayInputStream ist. Ich will das und machen es etwas, dass ich auf eine Stelle in meinem Dateisystem speichern kann.

Ich habe im Kreis herum, könnten Sie Hilfe bitte mir.

War es hilfreich?

Lösung

Wenn Sie bereits mit Apache commons-io , können Sie es tun mit:

 IOUtils.copy(byteArrayInputStream, new FileOutputStream(outputFileName));

Andere Tipps

InputStream in = //your ByteArrayInputStream here
OutputStream out = new FileOutputStream("filename.jpg");

// Transfer bytes from in to out
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
    out.write(buf, 0, len);
}
in.close();
out.close();

Sie können den folgenden Code verwenden:

ByteArrayInputStream input = getInputStream();
FileOutputStream output = new FileOutputStream(outputFilename);

int DEFAULT_BUFFER_SIZE = 1024;
byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
long count = 0;
int n = 0;

n = input.read(buffer, 0, DEFAULT_BUFFER_SIZE);

while (n >= 0) {
   output.write(buffer, 0, n);
   n = input.read(buffer, 0, DEFAULT_BUFFER_SIZE);
}
    ByteArrayInputStream stream  = <<Assign stream>>;
    byte[] bytes = new byte[1024];
    stream.read(bytes);
    BufferedWriter writer = new BufferedWriter(new FileWriter(new File("FileLocation")));
    writer.write(new String(bytes));
    writer.close();

Buffered Writer wird die Leistung verbessert Dateien im Vergleich zu Filewriter schriftlich anzuzeigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top