永发信息网

java怎么解包

答案:2  悬赏:50  手机版
解决时间 2021-01-31 05:43
java怎么解包
最佳答案
//解压缩ZIP 参数 zip文件(绝对路径) 返回解压后的文件列表(绝对路径)
public static List untieZipFile(String zipFile) throws FileNotFoundException, IOException{
List fileList = new ArrayList();
// ZIP文件输入流
ZipInputStream zinStream;
try {
zinStream = new ZipInputStream(new FileInputStream(zipFile));

ZipEntry ze;

// pathTemp 去掉.zip后缀 生成对应的释放文件夹
String pathTemp = zipFile.replaceAll("\\\\", "/").replaceAll("//","/").substring(0, zipFile.length() - 5);

// 如果有同名目录,删除原有目录下的文件
java.io.File oldFile = new File(pathTemp);
if (oldFile.exists()) {
deleteFileList(oldFile);
}

// 解压ZIP中全部文件
while ((ze = zinStream.getNextEntry()) != null) {
if(ze.getName().indexOf(".") != -1){
// fileTemp 获得ZIP中文件列表的路径
String[] fileTemp = ze.getName().replaceAll("\\\\", "/").replaceAll("//", "/").split("/");

// writeFile ZIP中单个文件的绝对路径
String writeFile = pathTemp;

for (int i = 0; i < fileTemp.length-1; i++) {
writeFile = writeFile + "/" + fileTemp[i];
}

java.io.File newFile = new File(writeFile);
if (!newFile.exists()) {
newFile.mkdirs();
}

// 构造出与ZIP中路径相同的输出流
OutputStream zoutStream = new FileOutputStream(writeFile + "/" + fileTemp[fileTemp.length - 1]);

// 写入文件内容
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = zinStream.read(buffer, 0, 8192)) != -1) {
zoutStream.write(buffer, 0, bytesRead);
}
zoutStream.flush();
zoutStream.close();

fileList.add(writeFile + "/" + fileTemp[fileTemp.length - 1]);
}
}
zinStream.close();
} catch (FileNotFoundException e) {
throw new FileNotFoundException(FileUtils.class.getName()+ "#untieZipFile()#" + e.getMessage());
} catch (IOException e) {
throw new IOException(FileUtils.class.getName()+ "#untieZipFile()#" + e.getMessage());
}
return fileList;
}

//删除目录
public static void deleteFileList(File oldFile) {
if (oldFile != null || oldFile.exists() || oldFile.isDirectory()) {
File[] oldFileList = oldFile.listFiles();
if(oldFileList!=null){
for (int i = 0; i < oldFileList.length; i++) {
if (oldFileList[i].isFile()) {
oldFileList[i].delete();
} else if (oldFileList[i].isDirectory()) {
deleteFileList(oldFileList[i]);
}
}
}
oldFile.delete();
}
}
全部回答
只要下载java的游戏包安装到手机上就可以自动解压了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
男人回答,当你喜欢一个女人时候会有什么普遍
韩式半永久眉毛两边做的不一样能改吗
晨升地址在什么地方,我要处理点事
【敲山震虎的意思】敲山震虎的意思是什么?
佳鑫地址在什么地方,想过去办事
江苏省无锡市澄江镇红光村19队什么时候拆迁
企业物资采购管理的概念是什么
旅游社都有什么部门?
某些地区出现“前面造林,后面砍林”的现象,
君悦二手车地址好找么,我有些事要过去
宝鸡眉县汤峪两天一夜游玩攻略
请问显卡GTX560TI、处理器I5 2300能玩毁灭战
期货的风险程度到底有多大
读我国西部两县城之间地形剖面图和降水量气温
时间,长久,爱情,永存猜是什么成语
推荐资讯
小文说:“早上比别人早起30分钟用于学习,效
PPT文字编辑,形状内的文本框内的文字排版自
三明京东宾馆地址好找么,我有些事要过去
河南农业大学附近有哪些大学
中国邮政储蓄银行(右卫镇东街)怎么去啊,我要
卫生间隐形门装有瀑布图好吗
驾校招生(唐山路北)怎么去啊,我要去那办事
从国外回国 南方航空 经济舱 可不可以带一个
带红衣的腰果能食用吗?
被蜜蜂叮了伤口好后有黑印,而且有凹凸感,我
如何去除弹簧床上面的污渍
胡王村地址有知道的么?有点事想过去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?