Мой SQLite db-файл размером 85 МБ сжимается с использованием формата XZ, а его размер уменьшен до 16 МБ. Я использую следующий код (и JAR обеспечивается XZ for Java), чтобы разархивировать его в Android Jelly Bean:Как быстро распаковывать XZ-файл в Java?
try {
FileInputStream fin = new FileInputStream(path + "myFile.xz");
BufferedInputStream in = new BufferedInputStream(fin);
FileOutputStream out = new FileOutputStream(des + "myDecompressed");
XZInputStream xzIn = new XZInputStream(in);
final byte[] buffer = new byte[8192];
int n = 0;
while (-1 != (n = xzIn.read(buffer))) {
out.write(buffer, 0, n);
}
out.close();
xzIn.close();
}
catch(Exception e) {
Log.e("Decompress", "unzip", e);
}
Декомпрессия выполняется успешно, но это займет больше двух минут. Я думаю, что это очень долго, потому что сжатый файл имеет только 16 МБ, а несжатый файл - только 85 МБ.
Интересно, сделал ли я что-то неправильно с кодом или есть способ ускорить этот процесс распаковки.
Что об этом: https://www.sqlite.org/fts3.html, см. Параметр сжатия – pskink
О, я забыл отметить, что мой sqlite db уже является компактным. –
, значит, вы имеете в виду, что он уже сжат? и хотя xz сокращает его до 20% от исходного размера? – pskink