У меня есть поток GZIPOutput, который уже определен.Теперь я хочу преобразовать его в байтовый массив.
Вам необходимо изменить метод, который создает GZIPOutputStream
, чтобы он отправлял его в ByteArrayOutputStream
.
* 1008.* В качестве альтернативы, после закрытия
FileOutputStream
для файла, в который вы (предположительно) записываете сжатые данные, откройте его для ввода и считайте в байтовый массив.
По поводу вашей текущей попытки:
GZIPOutputStream zipStream = createGZIP();
byte[] compressedData = zipStream.toByteArray();
Этот подход не сработает.
GZIPOutputStream
не предоставляет методов API для извлечения сжатых данных. GZIPOutputStream
не предоставляет методов API для получения потока, в который GZIPOutputStream
записывает данные.(И даже если бы это было, большинство OutputStream
типов не позволяют вам извлекать данные ...)
В общем, лучше найти и прочитать javadocs для классов, которыеты используешь.Программирование с помощью угадывания методов, которые они предоставляют, может привести вас к потере времени, когда ваши догадки ошибочны.