来自Inputstream的文件对象

时间:2015-09-23 14:51:56

标签: android zipfile zip4j

我想在我的Android应用中应用zip4j。我将一个演示zip文件放入assets文件夹(main/assets/test.zip)。我想用zip4j打开它:

import net.lingala.zip4j.core.ZipFile;
...
ZipFile zipFile = new ZipFile(new File("an/absolute/path/is/required"));

但是,应用zip4j所需的构造函数需要String对象(文件的绝对路径)或File对象。但Android的AssetManger仅返回InputStream。另外请不要:AssetManger 提供绝对路径或其他东西。

那么,我需要做些什么才能将InputStream is = getResources().getAssets().open(filename);的输入流转换为java.io.File对象,然后我可以将其应用于ZipFile

1 个答案:

答案 0 :(得分:0)

处理资产时常见的任务:

  1. 从AssetManager获取AssetFileDescriptor:openFD(String fileName)。
  2. 从AssetFileDescriptor获取FileDescriptor:getFileDescriptor()
  3. 从FileDescriptor构造一个新文件。