В настоящее время я хочу создать zip-файл и сделать его доступным в браузере через HTTP-ответ. Поскольку я не хочу кэшировать файлы на жестком диске, мне приходится все время использовать потоки. Проблема в том, что после создания zip-файла у меня есть только один ByteArrayOutputStream, но для отправки ответа мне нужен InputStream.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zip = new ZipOutputStream(baos);
// filling zip with multiple ZipEntrys
IOUtils.closeQuietly(zip);
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
IOUtils.closeQuietly(baos);
Строка
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
каждый раз дает мне нулевой указатель.
Что не так? Есть поток не полностью написан? Кроме того, я должен сделать все с Java 6 и Apache commons.