mirror of
https://github.com/introlab/rtabmap_ros.git
synced 2026-10-05 01:07:49 +08:00
57 lines
1.5 KiB
Java
57 lines
1.5 KiB
Java
package com.introlab.rtabmap;
|
|
|
|
import java.io.BufferedInputStream;
|
|
import java.io.BufferedOutputStream;
|
|
import java.io.FileInputStream;
|
|
import java.io.FileOutputStream;
|
|
import java.io.IOException;
|
|
import java.util.zip.ZipEntry;
|
|
import java.util.zip.ZipOutputStream;
|
|
|
|
import android.content.Context;
|
|
import android.net.ConnectivityManager;
|
|
import android.net.NetworkInfo;
|
|
import android.util.Log;
|
|
|
|
public class Util {
|
|
|
|
public static final int ZIP_BUFFER_SIZE = 1<<20; // 1MB
|
|
|
|
public static void zip(String file, String zipFile) throws IOException {
|
|
Log.i(RTABMapActivity.TAG, "Zipping " + file +" to " + zipFile);
|
|
String[] files = new String[1];
|
|
files[0] = file;
|
|
zip(files, zipFile);
|
|
}
|
|
|
|
public static void zip(String[] files, String zipFile) throws IOException {
|
|
Log.i(RTABMapActivity.TAG, "Zipping " + String.valueOf(files.length) +" files to " + zipFile);
|
|
BufferedInputStream origin = null;
|
|
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile)));
|
|
try {
|
|
byte data[] = new byte[ZIP_BUFFER_SIZE];
|
|
|
|
for (int i = 0; i < files.length; i++) {
|
|
FileInputStream fi = new FileInputStream(files[i]);
|
|
origin = new BufferedInputStream(fi, ZIP_BUFFER_SIZE);
|
|
try {
|
|
ZipEntry entry = new ZipEntry(files[i].substring(files[i].lastIndexOf("/") + 1));
|
|
out.putNextEntry(entry);
|
|
int count;
|
|
while ((count = origin.read(data, 0, ZIP_BUFFER_SIZE)) != -1) {
|
|
out.write(data, 0, count);
|
|
}
|
|
}
|
|
finally {
|
|
origin.close();
|
|
}
|
|
}
|
|
}
|
|
finally {
|
|
out.close();
|
|
}
|
|
}
|
|
|
|
|
|
}
|