java 解压缩后放到 一个list里。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 解压缩后放到 一个list里。相关的知识,希望对你有一定的参考价值。

package com.smartdot.eafr.common.controller;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
/**
* 可以处理中文文件名
*/
public class Test

private static final int buffer = 2048;
public static void main(String[] args)

unZip("D:\\img.zip");

public static void unZip(String path)

int count = -1;
int index = -1;
String savepath = "";
boolean flag = false;
File file = null;
InputStream is = null;
FileOutputStream fos = null;
BufferedOutputStream bos = null;
savepath = path.substring(0, path.lastIndexOf("\\")) + "\\";
try

ZipFile zipFile = new ZipFile(path);
Enumeration<?> entries = zipFile.getEntries();
while(entries.hasMoreElements())

byte buf[] = new byte[buffer];
ZipEntry entry = (ZipEntry)entries.nextElement();
String filename = entry.getName();
index = filename.lastIndexOf("/");
if(index > -1)
filename = filename.substring(index+1);
filename = savepath + filename;
flag = isPics(filename);
if(!flag)
continue;
file = new File(filename);
file.createNewFile();
is = zipFile.getInputStream(entry);
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos, buffer);
while((count = is.read(buf)) > -1)

bos.write(buf, 0, count );

fos.close();
is.close();

zipFile.close();
catch(IOException ioe)
ioe.printStackTrace();


public static boolean isPics(String filename)

boolean flag = false;
if(filename.endsWith(".jpg") || filename.endsWith(".gif") || filename.endsWith(".bmp") || filename.endsWith(".png"))
flag = true
return flag;


我要上传个压缩包,解析后放到list里,然后吧list里的东西放到页面上。这思路谁能提一下 ,拜托了

list.add( filename = filename.substring(index+1)),保存文件名,放在list就好了 参考技术A list中要放的时什么?文件名?还是List<Byte>?

解压缩

解压缩

## 一、 解压缩

如果我们给出一个列表,我们需要一次性取出多个值,我们是不是可以用下面的方式实现呢?

name_list = ['randy', 'sun', 'weilai']
x = name_list[0]
y = name_list[1]
z = name_list[2]
print(f'x:{x}, y:{y}, z:{z}')
  • 解压缩

    解压缩可以这样理解:超市打包是把多个商品放在一起,解压缩其实就是解包把多个商品一次性拿出来。

name_list = ['randy', 'sun', 'weilai', 'diaoshi', 'saoqi']
x, y, z = name_list
x, _, z, _ = name_list  # _相当于告诉计算机不要了,不能以_开头和结尾

还能有一个更骚的操作,只可意会不可言传。

name_list = ['randy', 'sun', 'weilai', 'diaoshi', 'saoqi']
x, y, _, _, _, z = name_list
x, y, *_, z = name_list  # *_会把前面x和z中间的所有数据省略掉,都不要

写程序不是用来装逼的,关键是创造价值。python追求的是简洁性,代码不要写的太长了。因此字典也是可以的,但是字典解压缩的是key。

info = {'name': 'randy', 'age': 18}
x, y = info
print(x, y)

name age

二、总结

  1. 解压缩作用:一次接受多个值,并且具有一定的意义,一般适应少数数据进行解压缩
  2. 解压缩可以过滤,你不想要的数据,无需定义变量名,只需通过 _ 实现接受多于的数据, *_会把前面x和z中间的所有数据省略掉,都不要
  3. 解压缩还可以对字段进行解压缩,但是只可以是key

以上是关于java 解压缩后放到 一个list里。的主要内容,如果未能解决你的问题,请参考以下文章

解压缩包后的文件可以删吗

解压缩

java 如何用zlib解压缩tar.gz文件

解压缩

tarzipgzip等解压缩命令

Win10安装MySQL5.7.29 解压缩版(手动配置)方法