Java 中 file 读写 与 Zip 压缩解压

以byte[]读文件

public static byte[] file2byte(String path)
{
    try {
        FileInputStream in =new FileInputStream(new File(path));
        //当文件没有结束时,每次读取一个字节显示
        byte[] data=new byte[in.available()];
        in.read(data);
       in.close();
        return data;
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

byte[]写文件

public static void byte2file(String path,byte[] data) {
    try {
        FileOutputStream outputStream  =new FileOutputStream(new File(path));
        outputStream.write(data);
        outputStream.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

zip解压byte[]

public static byte[] unZip(byte[] data) {
    byte[] b = null;
    try {
        ByteArrayInputStream bis = new ByteArrayInputStream(data);
        ZipInputStream zip = new ZipInputStream(bis);
        while (zip.getNextEntry() != null) {
            byte[] buf = new byte[1024];
            int num = -1;
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            while ((num = zip.read(buf, 0, buf.length)) != -1) {
                baos.write(buf, 0, num);
            }
            b = baos.toByteArray();
            baos.flush();
            baos.close();
        }
        zip.close();
        bis.close();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return b;
}

zip压缩byte[]

public static byte[] zip(byte[] data) {
    byte[] b = null;
    try {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        ZipOutputStream zip = new ZipOutputStream(bos);
        ZipEntry entry = new ZipEntry("zip");
        entry.setSize(data.length);
        zip.putNextEntry(entry);
        zip.write(data);
        zip.closeEntry();
        zip.close();
        b = bos.toByteArray();
        bos.close();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return b;
}
0%