Compression/Décompression d'un buffer
Le 10 mars 2008, à 1:16 par Ulhume...

Compression/Décompression d'un buffer

public final class CompressionUtilities {

    /**
     * Compress an array of bytes.
     *
     * @param source source
     * @return compressed result
     * @throws IOException errors
     */

    public static byte[] compress(byte[] source) throws IOException {
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        ZipOutputStream zipOutputStream = new ZipOutputStream(byteArrayOutputStream);
        zipOutputStream.putNextEntry(new ZipEntry("0"));
        zipOutputStream.write(source);
        zipOutputStream.closeEntry();
        byte[] compressed = byteArrayOutputStream.toByteArray();
        zipOutputStream.close();
        return compressed;
    }

    /**
     * uncompress an array of bytes.
     *
     * @param source compressed bytes
     * @return uncompress bytes
     * @throws IOException errors
     */

    public static byte[] uncompress(byte[] source) throws IOException {
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(source);
        ZipInputStream zipInputStream = new ZipInputStream(byteArrayInputStream);
        zipInputStream.getNextEntry();
        byte[] buffer = new byte[1024];
        int nbBytes;
        while ((nbBytes = zipInputStream.read(buffer)) != -1)
            byteArrayOutputStream.write(buffer, 0, nbBytes);
        byte[] decompressed = byteArrayOutputStream.toByteArray();
        byteArrayOutputStream.close();
        zipInputStream.close();
        return decompressed;
    }

    /**
     * hidden constructor.
     */

    private CompressionUtilities() {
    }
}

Commentaires

Poster un nouveau commentaire

Le contenu de ce champ est gardé secret et ne sera pas montré publiquement.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • To highlight piece of code, just surround them with <code type="language"> Your code &tl;/code>>. Language can be java,c++,bash,etc... Everything Geshi support.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Textual smileys will be replaced with graphical ones.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.

Plus d'informations sur les options de formatage

Connexion utilisateur
Les derniers bavardages...