все
Я столкнулся с проблемой сжатия и распаковки между 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 ++.
С чего начать?
Ваша программа сжатия использует zlib (см. Документация JDK), так что вам нужно использовать библиотеку C ++ zlib для распаковки выходных данных.
документация zlib это место для начала.
Других решений пока нет …