java判断文件流是不是gzip压缩文件

329 阅读1分钟

最近遇到一个需求,下载文件时,如果文件不是gzip格式就是压缩成gzip格式; 如果是则直接下载.

GZIPInputStream.class类型文件中, 有一个属性表示GZIP文件,文件以0x8b1f开头就是表文件为gzip文件, 我们可以利用这一点来判断

/**
 * GZIP header magic number.
 */
public final static int GZIP_MAGIC = 0x8b1f;

直接上传代码

private boolean assertGzip(byte[] bytes) {
    int b0 = bytes[0];
    int b1 = bytes[1];
    int b = (b1&0xFF)<<8 | b0;
    return b == GZIPInputStream.GZIP_MAGIC;
}