GZIPOutputStream setLevel dosn在Android OS 6.0上不起作用。
我从以下网址问题中提高了数据压缩率。
GZIPOutputStream: Increase compression level
但不能在Android操作系统上使用。
它可能仅适用于Java vm。
有人知道如何提高Andorid操作系统上的数据压缩率吗?
private static boolean archive(GZIPOutputStream outZip, File targetFile, String entryName, int number) {
try {
MyGZIPOutputStream os = new MyGZIPOutputStream(outZip);
os.setLevel(number);
BufferedInputStream in = new BufferedInputStream(new FileInputStream(targetFile));
int readSize = 0;
byte buffer[] = new byte[1024];
while ((readSize = in.read(buffer, 0, buffer.length)) != -1) {
os.write(buffer, 0, readSize);
}
} catch (Exception e) {
return false;
}
return true;
}
private static class MyGZIPOutputStream extends GZIPOutputStream {
public MyGZIPOutputStream(OutputStream out) throws IOException {
super(out);
}
public void setLevel(int level) {
def.setLevel(level);
}
}