我需要在系统中向客户提供zip文件的视图,并允许客户下载选择的文件。
现在我已经记住了所有的zipentry位置,但有没有java zip工具来解压缩zip文件的指定位置?
发布于 2018-07-25 08:42:15
你可以使用以下代码从zip中提取特定文件:
public static void main(String[] args) throws Exception{
String fileToBeExtracted="fileName";
String zipPackage="zip_name_with_full_path";
OutputStream out = new FileOutputStream(fileToBeExtracted);
FileInputStream fileInputStream = new FileInputStream(zipPackage);
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream );
ZipInputStream zin = new ZipInputStream(bufferedInputStream);
ZipEntry ze = null;
while ((ze = zin.getNextEntry()) != null) {
if (ze.getName().equals(fileToBeExtracted)) {
byte[] buffer = new byte[9000];
int len;
while ((len = zin.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
out.close();
break;
}
}
zin.close();
}
发布于 2018-07-25 10:14:04
你可以这样做:
ZipFile zf = new ZipFile(file);
try {
InputStream in = zf.getInputStream(zf.getEntry("file.txt"));
// ... read from 'in' as normal
} finally {
zf.close();
}
我还没有尝试过,但是在Java7ZipFileSystem中,您可以尝试像这样从zip文件中提取file.txt文件。
Path zipfile = Paths.get("/samples/ziptest.zip");
FileSystem fs = FileSystems.newFileSystem(zipfile, env, null);
final Path root = fs.getPath("/file.TXT");
https://stackoverflow.com/questions/-100005706
复制相似问题