Android程序解压缩zip文件,并加载显示解压后的文件内容
刚做了个demo用于解压缩本地zip文件,并用webview显示其中的一个html文件,直接上代码,需要的朋友可以看看
public class ZipActivity extends Activity {
private static final String TAG = "HelloXmlActivity";
private WebView mWebView;
private static LinkedHashMap<String, String> widgetInfoMap = new LinkedHashMap<String, String>();
//http://blog.csdn.net/com360/article/details/6618086
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String zipfile = "/sdcard/abc.zip";
try {
unzip(zipfile, "/sdcard/");//yangguangfu/wujiali/
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mWebView=(WebView)findViewById(R.id.web);
mWebView.loadUrl("file:///sdcard/abc/aaa.html");//此处加载解压后的html内容
}
/*
* 这个是解压ZIP格式文件的方法
*
* @zipFileName:是传进来你要解压的文件路径,包括文件的名字;
*
* @outputDirectory:选择你要保存的路劲;
*
*/
private void unzip(String zipFileName, String outputDirectory)
throws Exception {
ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));
ZipEntry z;
String name = "";
String extractedFile = "";
int counter = 0;
while ((z = in.getNextEntry()) != null) {
name = z.getName();
Log.d(TAG, "unzipping file: " + name);
if (z.isDirectory()) {
Log.d(TAG, name + "is a folder");
// get the folder name of the widget
name = name.substring(0, name.length() - 1);
File folder = new File(outputDirectory + File.separator + name);
folder.mkdirs();
if (counter == 0) {
extractedFile = folder.toString();
}
counter++;
Log.d(TAG, "mkdir " + outputDirectory + File.separator + name);
} else {
Log.d(TAG, name + "is a normal file");
File file = new File(outputDirectory + File.separator + name);
file.createNewFile();
// get the output stream of the file
FileOutputStream out = new FileOutputStream(file);
int ch;
byte[] buffer = new byte[1024];
// read (ch) bytes into buffer
while ((ch = in.read(buffer)) != -1) {
// write (ch) byte from buffer at the position 0
out.write(buffer, 0, ch);
out.flush();
}
out.close();
}
}
in.close();
}
}
其中我的abc.zip文件是放在sdcard中的,里面有2个文件,解压后生成一个abc文件夹,文件夹下是解压缩后的2个文件,我用一个webview直接指定加载了解压后的一个html文件,做的比较粗糙,省去了文件存在判断,扫描文件名、文件类型,main.xml
补充:移动开发 , Android ,