java 解压缩之后文件内容读取

Posted

tags:

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

ZipFile zipFile = new ZipFile("D:\\**.zip")
Enumeration<? extends ZipEntry> zipEntrys = zipFile.entries();
while(zipEntrys.hasMoreElements())

ZipEntry zipEntry = zipEntrys.nextElement();
String filename = zipEntry.getName();

我的zip包里文件为:1.txt 2.txt 2.jpg 3.txt 3.jpg ... 10.txt
通过代码第一次得到 1.txt 第二次就是10.txt了,我想按顺序得到该怎么写,求大侠指导。
例如 1.txt 2.txt 2.jpg 3.txt 3.jpg ... 10.txt
File files = new File(“解压之后文件路径”);
String test[] ;
test = files.list();
for(int j = 0 ;j<test.length;j++)
String filename = test[j];
System.out.println(filename);

这样写也同上面问题一样,跪求大侠指导

参考技术A 您的排序与zip排序不一样。
所以第一步应该得到所有名称,然后再按照新的顺序来读

如果只是解压到某处,新的顺序一点用处都没有!追问

是解压到某处,就是不用 zipEntrys.nextElement();来读,我创建一个File去读这个新解压好的文件夹,顺序也是问题那样,我是想要按名字存放彩信帧,如果顺序不对,彩信的帧位置也就不对了,请问下,有好的解决办法没有

追答

如此,其实不需要复杂化。
您在些文件是重新给一个排序的名称就可以。

追问

可以给个源码吗,谢谢了

追答

不用,您自己完全可以做到:比如
newName=String.format("frame%03d",Integer.parse(name))

如果我没有理解错误的话,就可以了

python怎样压缩和解压缩ZIP文件

1、python使用zipfile模块压缩和解压ZIP文件
2、读取zip文件
首先,通过zipfile模块打开指定zip文件,如:
zpfd = zipfile.ZipFile(path, mode=\'r\')
对于zipfile,其标志与open所用的打开文件标志有所不同,不能识别 \'rb\'。
然后,读取zip文件中的内容,zipfile对象提供一个read(name)的方法,name为zip文件中的一个文件入口,执行完成之后,将返回读出的内容,如:
for filename in zpfd.namelist():
tmpcont = zpfd.read(filename)
print \'len(tmpcont)\', \'tmpcont\'
需要注意的是,读取zip文件时,只能读取内容
3、写入zip文件
首先,需要zipfile模块写打开或创建zip文件,如:
zpfd = zipfile.ZipFile(path, mode=\'w\')
写打开是标志可以为\'w\'或\'a\'(\'a\'表示写入一个zip文件), 或者传入第三个参数cmopression压缩标志
compression=zipfile.ZIP_DEFLATED 需要导入zlib模块
compression=zipfile.ZIP_STORED则表示只对文件进行打包,并不压缩
写入有两种方式,一种是直接写入一个已经存在的文件,可使用zipfile对象中write(filename, arcname, compress_type)第一个参数为文件名,第二个参数指写入zip文件中的文件名,默认与filename一致,第三个参数压缩标志可以覆盖打开zipfile时的使用参数;另一种是写入一个字符串,可使用zipfile对象中的writestr(zinfo_or_arcname, bytes),第一个参数是zipinfo对象或写到zip文件中的压缩名,第二个参数是待写入的字符串
4、最后,对于打开的zipfile对象需要进行关闭,从而使得写入内容真正写入磁盘,即:
zpfd.close()
参考技术A 榭梢越?姓庋?牟僮鳌2还 Python 中的 zipfile 模块不能处理多卷的情况,不过这种情况并不多见,因此在通常情况下已经足够使用了。下面我只是对一些基本的 zipfile 操作进行了记录,足以应付大部分的情况了。zipfile 模块可以让你打开或写入一个 zip 文件。比如:import zipfilez = zipfile.ZipFile('zipfilename', mode='r') 这样就打开了一个 zip 文件,如果mode为'w'或'a'则表示要写入一个 zip 文件。如果是写入,则还可以跟上第三个参数: compression=zipfile.ZIP_DEFLATED 或 compression=zipfile.ZIP_STORED ZIP_DEFLATED是压缩标志,如果使用它需要编译了zlib模块。而后一个只是用zip进行打包,并不压缩。在打开了zip文件之后就可以根据需要是读出zip文件的内容还是将内容保存到 zip 文件中。读出zip中的内容很简单,zipfile 对象提供了一个read(name)的方法。name为 zip文件中的一个文件入口,执行完成之后,将返回读出的内容,你把它保存到想到的文件中即可。写入zip文件有两种方式,一种是直接写入一个已经存在的文件,另一种是写入一个字符串。对 于第一种使用 zipfile 对象的 write(filename, arcname, compress_type),后两个参数是可以忽略的。第一个参数是文件名,第二个参数是表示在 zip 文件中的名字,如果没有给出,表示使用与filename一样的名字。compress_type是压缩标志,它可以覆盖创建 zipfile 时的参数。第二种是使用 zipfile 对象的 writestr(zinfo_or_arcname, bytes),第一个参数是zipinfo 对象或写到压缩文件中的压缩名,第二个参数是字符串。使用这个方法可以动态的组织文件的内容。类源码为:[python] view plaincopy# coding:cp936 # Zfile.py # xxteach.com import zipfile import os.path import os class ZFile(object): def __init__(self, filename, mode='r', basedir=''): self.filename = filename self.mode = mode if self.mode in ('w', 'a'): self.zfile = zipfile.ZipFile(filename, self.mode, compression=zipfile.ZIP_DEFLATED) else: self.zfile = zipfile.ZipFile(filename, self.mode) self.basedir = basedir if not self.basedir: self.basedir = os.path.dirname(filename) def addfile(self, path, arcname=None): path = path.replace('//', '/') if not arcname: if path.startswith(self.basedir): arcname = path[len(self.basedir):] else: arcname = '' self.zfile.write(path, arcname) def addfiles(self, paths): for path in paths: if isinstance(path, tuple): self.addfile(*path) else: self.addfile(path) def close(self): self.zfile.close() def extract_to(self, path): for p in self.zfile.namelist(): self.extract(p, path) def extract(self, filename, path): if not filename.endswith('/'): f = os.path.join(path, filename) dir = os.path.dirname(f) if not os.path.exists(dir): os.makedirs(dir) file(f, 'wb').write(self.zfile.read(filename)) def create(zfile, files): z = ZFile(zfile, 'w') z.addfiles(files) z.close() def extract(zfile, path): z = ZFile(zfile) z.extract_to(path) z.close()

以上是关于java 解压缩之后文件内容读取的主要内容,如果未能解决你的问题,请参考以下文章

PHP解压缩zip并将内容插入数据库

JAVA输入/输出流程序例题(文件和目录字节流字符流)

请大神帮忙解决一个用java解压缩一个zip压缩格式字节流中文内容乱码问题!

EXCEL 数据透视表 不可读取

Java - 读取 BZ2 文件并即时解压缩/解析

java 读取zip里面的文件夹