GZip из файла, который также содержит текстовые данные

#java #gzip

#java #gzip

Вопрос:

Мы получаем файл gzip через MQ, и у него также есть некоторые свойства сообщения, добавленные к потоку. Можем ли мы прочитать данные gzip из потока и разархивировать их? Если это возможно, не могли бы вы дать несколько советов. Спасибо.

Комментарии:

1. Удалось извлечь это из массива байтов и также разархивировать его. Пришлось немного пропустить, чтобы перейти к началу потока. Спасибо.

Ответ №1:

функция чтения возвращает фактическое количество прочитанных байтов. Таким образом, вы должны сохранить возвращаемое значение этой функции (в настоящее время внутри при проверке вашего кода). Когда это значение равно != -1 и равно < 1024, это дает вам представление о том, где заканчиваются данные gzip и начинаются строковые данные.

Ответ №2:

Это должно сработать. Мне нужна настройка (не проверялась).

Редактировать:

 GZIPInputStream gz = new GZIPInputStream(inputStream);
InputStreamReader r = new InputStreamReader(gz);
BufferedReader br = new BufferedReader(r);
StringBuilder sb = new StringBuilder();
String line;
while ( (line = br.readLine()) != null ) {
    sb.append(line);
}
System.out.println(sb.toString());
  

Комментарии:

1. Это не будет компилироваться; while выражение должно быть логическим.