在Android应用程序中解压缩sd卡上的压缩文件,可以使用Java代码实现。以下是一个简单的示例,演示如何使用ZipFile类解压缩一个zip文件:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class UnzipUtil {
public static void unzip(String zipFilePath, String destDirectory) {
File destDir = new File(destDirectory);
if (!destDir.exists()) {
destDir.mkdir();
}
ZipInputStream zipIn = null;
try {
zipIn = new ZipInputStream(new FileInputStream(zipFilePath));
ZipEntry entry = zipIn.getNextEntry();
while (entry != null) {
String filePath = destDirectory + File.separator + entry.getName();
if (!entry.isDirectory()) {
extractFile(zipIn, filePath);
} else {
File dir = new File(filePath);
dir.mkdirs();
}
zipIn.closeEntry();
entry = zipIn.getNextEntry();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (zipIn != null) {
try {
zipIn.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
private static void extractFile(ZipInputStream zipIn, String filePath) throws IOException {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(filePath);
byte[] bytesIn = new byte[4096];
int read = 0;
while ((read = zipIn.read(bytesIn)) != -1) {
fos.write(bytesIn, 0, read);
}
} finally {
if (fos != null) {
fos.close();
}
}
}
}
在这个示例中,我们使用了ZipInputStream类来读取zip文件,并使用FileOutputStream类将解压缩的文件写入到目标目录中。
要使用这个示例,只需要调用UnzipUtil.unzip()方法,并传递zip文件的路径和目标目录即可。例如:
String zipFilePath = "/sdcard/myfile.zip";
String destDirectory = "/sdcard/unzipped";
UnzipUtil.unzip(zipFilePath, destDirectory);
这个示例将解压缩/sdcard/myfile.zip文件到/sdcard/unzipped目录中。
领取专属 10元无门槛券
手把手带您无忧上云