有没有直接的方法将java.util.zip.ZipEntry解压缩为File?我想指定一个位置(如“C:\temp\myfile.java”)并将Entry解压缩到该位置。网上有一些流代码,但我更喜欢测试过的库函数。
java.util.zip.ZipEntry
File
gk7wooem1#
使用ZipFile类
ZipFile zf = new ZipFile("zipfile");
获取入口
ZipEntry e = zf.getEntry("name");
获取输入流
InputStream is = zf.getInputStream(e);
保存字节
Files.copy(is, Paths.get("C:\\temp\\myfile.java"));
np8igboo2#
使用下面的代码将“zip文件”解压缩到File中,然后使用ZipEntry添加到列表中。希望这对您有帮助。
ZipEntry
private List<File> unzip(Resource resource) { List<File> files = new ArrayList<>(); try { ZipInputStream zin = new ZipInputStream(resource.getInputStream()); ZipEntry entry = null; while((entry = zin.getNextEntry()) != null) { File file = new File(entry.getName()); FileOutputStream os = new FileOutputStream(file); for (int c = zin.read(); c != -1; c = zin.read()) { os.write(c); } os.close(); files.add(file); } } catch (IOException e) { log.error("Error while extract the zip: "+e); } return files; }
mjqavswn3#
使用ZipInputStream通过使用getNextEntry()方法迭代移动到所需的ZipEntry。然后使用ZipInputStream.read(...)方法读取当前ZipEntry的字节。将这些字节输出到指向您选择的文件的FileOutputStream。
ZipInputStream
getNextEntry()
ZipInputStream.read(...)
FileOutputStream
3条答案
按热度按时间gk7wooem1#
使用ZipFile类
获取入口
获取输入流
保存字节
np8igboo2#
使用下面的代码将“zip文件”解压缩到File中,然后使用
ZipEntry
添加到列表中。希望这对您有帮助。mjqavswn3#
使用
ZipInputStream
通过使用getNextEntry()
方法迭代移动到所需的ZipEntry
。然后使用ZipInputStream.read(...)
方法读取当前ZipEntry
的字节。将这些字节输出到指向您选择的文件的FileOutputStream
。