Pytanie Utwórz plik z obiektu ByteArrayOutputStream


Czy ktoś może wyjaśnić, jak mogę uzyskać obiekt pliku, jeśli mam tylko ByteArrayOutputStream. Jak utworzyć plik z pliku ByteArrayOutputStream?


47
2017-07-05 12:06


pochodzenie




Odpowiedzi:


Możesz to zrobić za pomocą a FileOutputStream i writeTo metoda.

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

Źródło: "Tworzenie pliku z ByteArrayOutputStream w Javie." na temat Wynalazków kodu


94
2017-07-05 12:08



a następnie zamknij też. - Markus Mikkolainen
@ MarkusMikkolainen tak ... oczywiście :) - ꜱᴜʀᴇꜱʜ ᴀᴛᴛᴀ
Lub użyj polecenia wypróbuj java 7, aby całkowicie się pozbyć, w końcu zablokuj;) stackoverflow.com/questions/2016299/... - dimuthu


Możesz użyć FileOutputStream do tego.

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();
}

23
2017-07-05 12:21



Twój kod nie będzie działać fos w try blok. Również, new File() Nie jest wymagane. - Ludovic Guillaume
Dobrze, że dodał "nowy plik ()". Czytelnikowi łatwiej jest zorientować się, że dostępny jest konstruktor plików. - Buffalo
Wydaje się to konieczne dla Androida. - Keith Holliday
Można go ulepszyć za pomocą fos wewnątrz try-with-resources () i upuszczając w końcu - vikingsteve