Преобразовать GZIPOutputStream в байтовый массив - PullRequest
0 голосов
/ 18 июня 2019

У меня уже есть поток GZIPOutput, который уже определен. Теперь я хочу преобразовать его в байтовый массив.

Я попробовал код ниже. Но это выдает ошибку.

GZIPOutputStream zipStream = createGZIP();
byte[] compressedData = zipStream.toByteArray();

ошибка: не удается разрешить метод "toByteArray ()"

проверено Сжатие GZIP в байтовый массив , но ввод байта []. Мне нужно конвертировать gzip, который у меня уже есть.

1 Ответ

3 голосов
/ 18 июня 2019

У меня есть поток GZIPOutput, который уже определен.Теперь я хочу преобразовать его в байтовый массив.

Вам необходимо изменить метод, который создает GZIPOutputStream, чтобы он отправлял его в ByteArrayOutputStream.

* 1008.* В качестве альтернативы, после закрытия FileOutputStream для файла, в который вы (предположительно) записываете сжатые данные, откройте его для ввода и считайте в байтовый массив.

По поводу вашей текущей попытки:

GZIPOutputStream zipStream = createGZIP();
byte[] compressedData = zipStream.toByteArray();

Этот подход не сработает.

  • GZIPOutputStream не предоставляет методов API для извлечения сжатых данных.
  • GZIPOutputStream не предоставляет методов API для получения потока, в который GZIPOutputStream записывает данные.(И даже если бы это было, большинство OutputStream типов не позволяют вам извлекать данные ...)

В общем, лучше найти и прочитать javadocs для классов, которыеты используешь.Программирование с помощью угадывания методов, которые они предоставляют, может привести вас к потере времени, когда ваши догадки ошибочны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...