Как распаковать данные с помощью GZIP в Java, если данные сжимаются с тем же в BlackBerry - PullRequest
2 голосов
/ 01 июня 2009

Я написал пример программы для сжатия и распаковки данных с использованием GZIP в Blackberry. Эта программа отлично работает. Я написал пример программы для сжатия и распаковки данных с использованием GZIP в Java. Эта программа также отлично работает. Но если я сожму данные с помощью BlackBerry. Я не могу распаковать данные в Java.

Ответы [ 3 ]

4 голосов
/ 01 июня 2009

Если вы следуете примеру кода, приведенному в Javadocs BlackBerry для GZIPOutputStream , он должен сжимать его правильно.

Пример кода

public static byte[] compress( byte[] data )
{   
    try
    {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        GZIPOutputStream gzipStream = new GZIPOutputStream( baos, 6, GZIPOutputStream.MAX_LOG2_WINDOW_LENGTH );
        gzipStream.write( data );
        gzipStream.close();
    }
    catch(IOException ioe)
    {
        return null;
    }

    return baos.toByteArray();
}
2 голосов
/ 01 июня 2009

Вам следует попробовать эталонную реализацию GZIP, например, сам инструмент gzip. Тогда вы лучше поймете, какой из ваших целей не соответствует стандартам.

0 голосов
/ 01 июня 2009

Когда вы говорите: «Я написал пример программы», вы имеете в виду, что вы написали свой собственный код GZIP или написали программу, которая использует GZIPInputStream?

Если вы просто хотите что-то, что работает, вам определенно следует использовать базовую библиотеку Java.

Если вы пытаетесь удовлетворить свое любопытство о том, как работает GZIP, и хотите написать собственный код в качестве учебного упражнения, вам придется предоставить гораздо более подробную информацию.

...