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
() {
}
}
Poster un nouveau commentaire