下载的图书是zip的, 所以 最好可以在接收后,解压到对应的文件夹里面,到时候直接读取对应的文件(当然,如果用db存储在sd卡里面更好)
结果找了下对应的方法,找了很多,其中有1个可以运行(因为很多,所以不记得是哪里下载了,只是贴出自己需要的那一部分)
方法一、 一个文件探针,如果父目录不存在,就创建对应的文件夹
/**
* 文件探针
* 当父目录不存在时,创建目录!
* @param dirFile
*/
private static void fileProber(File dirFile) {
File parentFile = dirFile.getParentFile();
if (!parentFile.exists()) {
// 递归寻找上级目录
fileProber(parentFile);
parentFile.mkdir();
}
}
方法二、 解压文件
/**
* 文件解压缩
* @param destFile 目标文件
* @param zis ZipInputStream
* @throws Exception
*/
private static void decompressFile(File destFile, ZipInputStream zis)
throws Exception {
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(destFile));
int count;
byte data[] = new byte[BUFFER_ZIP];
while ((count = zis.read(data, 0, BUFFER_ZIP)) != -1) {
bos.write(data, 0, count);
}
bos.close();
}
方法三、 迭代
/**
* 解压zip文件,
* @param destFile 目标文件
* @param zis zip的InputStream
* @throws Exception
*/
public static void decompress(File destFile, ZipInputStream zis)
throws Exception {
ZipEntry entry = null;
while ((entry = zis.getNextEntry()) != null) {
String dir = destFile.getPath() + File.separator + entry.getName();
File dirFile = new File(dir);
fileProber(dirFile);
if (entry.isDirectory()) {
dirFile.mkdirs();
} else {
decompressFile(dirFile, zis);
}
}
}
这样就可以实现对应的方法了
-------------------------------------2012.11.14------------
由于晚上公司上市挂牌庆祝,事情也做得差不多了,自己就用junit测试下这个程序,顺便理解下junit。
将对应的过程放到一个Activity中, 建立对应Project的junit, 建立对应的测试类 并且extends ActivityInstrumentationTestCase2<LoadingActivity>
通过getActivity来得到对应的方法, 再直接测试
pass了 :-)
用junit真的很方便, 以后要多多运用到程序里面。