在开发中,有时候需要去读取文件,但是如果这个文件在压缩包里怎么办呢?
其实安卓也提供了对应的处理方法
今天就大概介绍一下
主要用到的是ZipFile这个类
具体代码如下
ZipFile zip = new ZipFile(zipFilepath);
zipFilepath就是你要读取的压缩包的所在路径
Enumeration<ZipEntry> entries = (Enumeration<ZipEntry>) zip.entries();
这里通过枚举的方式去返回一个枚举类
接下来就是核心代码了
StringBuilder content = new StringBuilder();
ZipEntry ze;
// 枚举zip文件内的文件/
while (entries.hasMoreElements()) {
ze = entries.nextElement();
// 读取目标对象
if (ze.getName().equals(readFileName)) {
Scanner scanner = new Scanner(zip.getInputStream(ze));
while (scanner.hasNextLine()) {
content.append(scanner.nextLine());
}
scanner.close();
}
}
zip.close();
通过遍历这个枚举类
根据文件名来查到这个压缩包里的文件
然后则开始读取这个文件里的内容
写入到content中
这里可以用来读取基本的txt文件的文本内容
也可以根据业务需要去自己修改了
下面介绍第二种方法
ZipFile zip=new ZipFile(new File(fileName));
照样同刚才一样创建这个类
ZipEntry zipEntry=zip.getEntry("test.txt");//通过getEntry(name)得到指定的文件类
if(zipEntry!=null){
Log.d("print", "已经查找到该文件");
}else {
Log.d("print", "该文件不存在");
}
这个方法相对刚才遍历的方式更简单
在确定该压缩包里要查找的文件的名字后
可以直接使用这个方式获得该文件
之后读取文件的方式和方法一里是一样的