библиотека Java для разрешения типов контента:

ли способ проверить, был ли InputStream разархивирован? Вот код:

public static InputStream decompressStream(InputStream input) {
    try {
        GZIPInputStream gs = new GZIPInputStream(input);
        return gs;
    } catch (IOException e) {
        logger.info("Input stream not in the GZIP format, using standard format");
        return input;
    }
}

Я пробовал этот способ, но он не работает должным образом - значения, прочитанные из потока, являются недопустимыми. РЕДАКТИРОВАТЬ: Добавлен метод, который я использую для сжатия данных:

public static byte[] compress(byte[] content) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    try {
        GZIPOutputStream gs = new GZIPOutputStream(baos);
        gs.write(content);
        gs.close();
    } catch (IOException e) {
        logger.error("Fatal error occured while compressing data");
        throw new RuntimeException(e);
    }
    double ratio = (1.0f * content.length / baos.size());
    if (ratio > 1) {
        logger.info("Compression ratio equals " + ratio);
        return baos.toByteArray();
    }
    logger.info("Compression not needed");
    return content;

}

Ответы на вопрос(10)

Ваш ответ на вопрос