Как сжать и распаковать между C ++ и Java?

все

Я столкнулся с проблемой сжатия и распаковки между Java и C ++.

Вот код Java работает на сервере.

public static byte[] CompressByDeflater(byte[] toCompress) throws IOException
{
ByteArrayOutputStream compressedStream = new ByteArrayOutputStream();
DeflaterOutputStream inflater = new DeflaterOutputStream(compressedStream);
inflater.write(toCompress, 0, toCompress.length);
inflater.close();

return compressedStream.toByteArray();
}

public static byte[] DecompressByInflater(byte[] toDecompress) throws IOException
{
ByteArrayOutputStream uncompressedStream = new ByteArrayOutputStream();
ByteArrayInputStream compressedStream = new ByteArrayInputStream(toDecompress);
InflaterInputStream inflater = new InflaterInputStream(compressedStream);

int c;
while ((c = inflater.read()) != -1)
{
uncompressedStream.write(c);
}

return uncompressedStream.toByteArray();
}

И я получаю двоичный файл с сервера.

Затем я должен распаковать его с помощью C ++.

С чего начать?

1

Решение

Ваша программа сжатия использует zlib (см. Документация JDK), так что вам нужно использовать библиотеку C ++ zlib для распаковки выходных данных.

документация zlib это место для начала.

2

Другие решения

Других решений пока нет …