- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中org.apache.tools.zip.ZipFile
类的一些代码示例,展示了ZipFile
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZipFile
类的具体详情如下:
包路径:org.apache.tools.zip.ZipFile
类名称:ZipFile
[英]Replacement for java.util.ZipFile
.
This class adds support for file name encodings other than UTF-8 (which is required to work on ZIP files created by native zip tools and is able to skip a preamble like the one found in self extracting archives. Furthermore it returns instances of org.apache.tools.zip.ZipEntry
instead of java.util.zip.ZipEntry
.
It doesn't extend java.util.zip.ZipFile
as it would have to reimplement all methods anyway. Like java.util.ZipFile
, it uses RandomAccessFile under the covers and supports compressed and uncompressed entries. As of Apache Ant 1.9.0 it also transparently supports Zip64 extensions and thus individual entries and archives larger than 4 GB or with more than 65536 entries.
The method signatures mimic the ones of java.util.zip.ZipFile
, with a couple of exceptions:
org.apache.tools.zip.ZipEntry
instances.java.util.ZipFile
。org.apache.tools.zip.ZipEntry
而不是java.util.zip.ZipEntry
的实例。java.util.zip.ZipFile
,因为它无论如何都必须重新实现所有方法。与java.util.ZipFile
类似,它在封面下使用RandomAccessFile,并支持压缩和未压缩的条目。从ApacheAnt 1.9.0开始,它还透明地支持Zip64扩展,因此单个条目和归档文件的容量大于4GB或超过65536个条目。java.util.zip.ZipFile
的签名,但有几个例外:org.apache.tools.zip.ZipEntry
个实例。代码示例来源:origin: jenkinsci/jenkins
private void unzip(File dir, File zipFile) throws IOException {
ZipFile zip = new ZipFile(zipFile);
@SuppressWarnings("unchecked")
Enumeration<ZipEntry> entries = zip.getEntries();
mkdirs(p);
try (InputStream input = zip.getInputStream(e)) {
IOUtils.copy(input, writing(f));
zip.close();
代码示例来源:origin: org.apache.ant/ant
int pling = uri.indexOf("!/");
if (uri.startsWith("jar:file") && pling > -1) {
zf = new ZipFile(org.apache.tools.ant.launch.Locator
.fromJarURI(uri), "UTF-8");
inputStream =
zf.getInputStream(zf.getEntry(uri.substring(pling + 2)));
} else {
URLConnection conn = url.openConnection();
} finally {
FileUtils.close(inputStream);
ZipFile.closeQuietly(zf);
代码示例来源:origin: org.apache.ant/ant
/**
* fetches information from the named entry inside the archive.
*/
protected void fetchEntry() {
ZipFile z = null;
try {
z = new ZipFile(getZipfile(), getEncoding());
setEntry(z.getEntry(getName()));
} catch (IOException e) {
log(e.getMessage(), Project.MSG_DEBUG);
throw new BuildException(e);
} finally {
ZipFile.closeQuietly(z);
}
}
代码示例来源:origin: org.apache.ant/ant
/**
* Returns <code>true</code> if the file exists and is signed with
* the signature specified, or, if <code>name</code> wasn't
* specified, if the file contains a signature.
* @param zipFile the zipfile to check
* @param name the signature to check (may be killed)
* @return true if the file is signed.
* @throws IOException on error
*/
public static boolean isSigned(File zipFile, String name)
throws IOException {
try (ZipFile jarFile = new ZipFile(zipFile)) {
if (null == name) {
return StreamUtils.enumerationAsStream(jarFile.getEntries())
.anyMatch(e -> e.getName().startsWith(SIG_START) && e.getName().endsWith(SIG_END));
}
name = replaceInvalidChars(name);
boolean shortSig = jarFile.getEntry(SIG_START
+ name.toUpperCase()
+ SIG_END) != null;
boolean longSig = false;
if (name.length() > SHORT_SIG_LIMIT) {
longSig = jarFile.getEntry(
SIG_START
+ name.substring(0, SHORT_SIG_LIMIT).toUpperCase()
+ SIG_END) != null;
}
return shortSig || longSig;
}
}
代码示例来源:origin: com.github.javahaohao/utils
public static boolean unZipWithoutOverWrite(String unZipFileName,
String destFileName) {
File unzipFile = new File(unZipFileName);
if (StringUtils.isBlank(destFileName) || destFileName.trim().length() == 0)
destFileName = unzipFile.getParent();
File destFile;
ZipFile zipFile = null;
try {
zipFile = new ZipFile(unzipFile, "GBK");
for (Enumeration entries = zipFile.getEntries(); entries
.hasMoreElements();) {
ZipEntry entry = (ZipEntry) entries.nextElement();
destFile = new File(destFileName, entry.getName());
unZipFile(destFile, zipFile, entry, false); // 执行解压
}
} catch (Exception e) {
log.error("解压ZIP文件异常", e);
return false;
} finally {
try {
assert zipFile != null;
zipFile.close();
} catch (Exception e) {
log.error("异常", e);
}
}
return true;
}
代码示例来源:origin: org.apache.ant/ant
getLocation());
try (ZipFile zf = new ZipFile(srcF, encoding, scanForUnicodeExtraFields)) {
boolean empty = true;
Enumeration<ZipEntry> entries = zf.getEntries();
while (entries.hasMoreElements()) {
ZipEntry ze = entries.nextElement();
try {
extractFile(fileUtils, srcF, dir,
is = zf.getInputStream(ze), //NOSONAR
ze.getName(), new Date(ze.getTime()),
ze.isDirectory(), mapper);
代码示例来源:origin: org.apache.ant/ant
return getCheckedRef().getInputStream();
final ZipFile z = new ZipFile(getZipfile(), getEncoding());
ZipEntry ze = z.getEntry(getName());
if (ze == null) {
z.close();
throw new BuildException("no entry " + getName() + " in "
+ getArchive());
return new FilterInputStream(z.getInputStream(ze)) {
public void close() throws IOException {
FileUtils.close(in);
代码示例来源:origin: org.apache.ant/ant
List<String> files)
throws IOException {
try (org.apache.tools.zip.ZipFile zf = new org.apache.tools.zip.ZipFile(file, "utf-8")) {
Set<String> dirSet = new HashSet<>();
StreamUtils.enumerationAsStream(zf.getEntries()).forEach(ze -> {
String name = ze.getName();
if (ze.isDirectory()) {
代码示例来源:origin: gradle.plugin.com.bettycc.umengauto/core
private static Map<ZipEntry, byte[]> readZipAllEntry(ZipFile file) throws Exception {
Map<ZipEntry, byte[]> entryMaps = new HashMap<ZipEntry, byte[]>();
Enumeration<? extends ZipEntry> entries = file.getEntries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
int len = -1;
byte[] data = new byte[512];
InputStream istream = file.getInputStream(entry);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
while ((len = istream.read(data, 0, 512)) != -1) {
bos.write(data, 0, len);
}
bos.close();
istream.close();
byte[] result = bos.toByteArray();
entryMaps.put(entry, result);
}
return entryMaps;
}
}
代码示例来源:origin: org.apache.ant/ant
base = fileset.getDir(getProject());
} else if (zfs instanceof ZipFileSet) {
zf = new ZipFile(zfs.getSrc(getProject()), encoding);
zf.close();
代码示例来源:origin: org.kantega.openaksess/openaksess-core
List<ZipEntry> entries = Collections.<ZipEntry>list(zipFile.getEntries());
for(ZipEntry entry : entries) {
if (isValidEntry(entry)) {
zipFile.close();
} finally {
temp.delete();
代码示例来源:origin: net.wasdev.wlp.ant/wlp-anttasks
public static void unzipToDirectory(File file, File destDir) throws IOException {
ZipFile zipFile = new ZipFile(file);
try {
unzipToDirectory(zipFile, destDir);
} finally {
ZipFile.closeQuietly(zipFile);
}
}
代码示例来源:origin: org.kantega.openaksess/openaksess-core
private byte[] getDataFromZipFileEntry(ZipFile zipFile, ZipEntry entry) throws IOException {
InputStream zis = zipFile.getInputStream(entry);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int len;
while ((len = zis.read(buf)) > 0) {
bos.write(buf, 0, len);
}
byte[] data = bos.toByteArray();
bos.close();
return data;
}
代码示例来源:origin: org.apache.ant/ant
/**
* close a zipfile quietly; throw no io fault, do nothing
* on a null parameter
* @param zipfile file to close, can be null
*/
public static void closeQuietly(final ZipFile zipfile) {
if (zipfile != null) {
try {
zipfile.close();
} catch (final IOException e) {
//ignore
}
}
}
代码示例来源:origin: org.apache.ant/ant
/**
* Add a file entry.
*/
private void addResource(final Resource r, final String name, final String prefix,
final ZipOutputStream zOut, final int mode,
final ZipFile zf, final File fromArchive)
throws IOException {
if (zf != null) {
final ZipEntry ze = zf.getEntry(r.getName());
if (ze != null) {
final boolean oldCompress = doCompress;
if (keepCompression) {
doCompress = (ze.getMethod() == ZipEntry.DEFLATED);
}
try (final BufferedInputStream is = new BufferedInputStream(zf.getInputStream(ze))) {
zipFile(is, zOut, prefix + name, ze.getTime(),
fromArchive, mode, ze.getExtraFields(true));
} finally {
doCompress = oldCompress;
}
}
} else {
try (final BufferedInputStream is = new BufferedInputStream(r.getInputStream())) {
zipFile(is, zOut, prefix + name, r.getLastModified(),
fromArchive, mode, r instanceof ZipResource
? ((ZipResource) r).getExtraFields() : null);
}
}
}
代码示例来源:origin: qq53182347/liugh-parent
try {
File sourceFile = new File(sourcePath);
zipFile = new ZipFile(sourcePath, "gbk");
if ((!sourceFile.exists()) && (sourceFile.length() <= 0)) {
throw new Exception("要解压的文件不存在!");
Enumeration<?> e = zipFile.getEntries();
while (e.hasMoreElements()) {
ZipEntry zipEnt = (ZipEntry) e.nextElement();
try {
if(null!=zipFile){
zipFile.close();
代码示例来源:origin: net.mingsoft/ms-util
pathFile.mkdirs();
ZipFile zip = new ZipFile(zipFile);
for (Enumeration entries = zip.getEntries(); entries.hasMoreElements();) {
ZipEntry entry = (ZipEntry) entries.nextElement();
String zipEntryName = entry.getName();
InputStream in = zip.getInputStream(entry);
String outPath = (descDir + zipEntryName).replaceAll("\\*", "/");
outPath = new String(outPath.getBytes("utf-8"), "ISO8859-1");
代码示例来源:origin: org.apache.ant/ant
"Only file provider resources are supported"));
try (ZipFile zf = new ZipFile(srcFile, encoding)) {
StreamUtils.enumerationAsStream(zf.getEntries()).forEach(entry -> {
Resource r = new ZipResource(srcFile, encoding, entry);
String name = entry.getName();
代码示例来源:origin: net.wasdev.wlp.ant/wlp-anttasks
private static void unzipToDirectory(ZipFile zipFile, File destDir) throws IOException {
byte[] buffer = new byte[4096];
Enumeration entries = zipFile.getEntries();
while (entries.hasMoreElements()) {
ZipEntry entry = (ZipEntry) entries.nextElement();
if (entry.isDirectory()) {
File dir = new File(destDir, entry.getName());
InstallUtils.createDirectory(dir);
} else {
File file = new File(destDir, entry.getName());
InstallUtils.createDirectory(file.getParentFile());
OutputStream out = null;
InputStream in = null;
try {
out = new BufferedOutputStream(new FileOutputStream(file));
in = zipFile.getInputStream(entry);
Unzip.copy(in, out, buffer);
} finally {
InstallUtils.close(in);
InstallUtils.close(out);
}
Unzip.setFilePermissions(file, entry);
}
}
}
代码示例来源:origin: gradle.plugin.com.bettycc.umengauto/core
filename = filepath.substring(index + 1);
ZipFile file = new ZipFile(filepath);
Map<ZipEntry, byte[]> readZipAllEntry = readZipAllEntry(file);
System.out.println("find output dir ....");
System.out.println("package :" + apkName + " success, take time " + (takeTime) / 1000 + "s " + ms + "ms");
file.close();
long totalTakeTime = System.currentTimeMillis() - start;
long ms = totalTakeTime % 1000;
我尝试理解[c代码 -> 汇编]代码 void node::Check( data & _data1, vector& _data2) { -> push ebp -> mov ebp,esp ->
我需要在当前表单(代码)的上下文中运行文本文件中的代码。其中一项要求是让代码创建新控件并将其添加到当前窗体。 例如,在Form1.cs中: using System.Windows.Forms; ..
我有此 C++ 代码并将其转换为 C# (.net Framework 4) 代码。有没有人给我一些关于 malloc、free 和 sprintf 方法的提示? int monate = ee; d
我的网络服务器代码有问题 #include #include #include #include #include #include #include int
给定以下 html 代码,将列表中的第三个元素(即“美丽”一词)以斜体显示的 CSS 代码是什么?当然,我可以给这个元素一个 id 或一个 class,但 html 代码必须保持不变。谢谢
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我试图制作一个宏来避免重复代码和注释。 我试过这个: #define GrowOnPage(any Page, any Component) Component.Width := Page.Surfa
我正在尝试将我的旧 C++ 代码“翻译”成头条新闻所暗示的 C# 代码。问题是我是 C# 中的新手,并不是所有的东西都像 C++ 中那样。在 C++ 中这些解决方案运行良好,但在 C# 中只是不能。我
在 Windows 10 上工作,R 语言的格式化程序似乎没有在 Visual Studio Code 中完成它的工作。我试过R support for Visual Studio Code和 R-T
我正在处理一些报告(计数),我必须获取不同参数的计数。非常简单但乏味。 一个参数的示例查询: qCountsEmployee = ( "select count(*) from %s wher
最近几天我尝试从 d00m 调试网络错误。我开始用尽想法/线索,我希望其他 SO 用户拥有可能有用的宝贵经验。我希望能够提供所有相关信息,但我个人无法控制服务器环境。 整个事情始于用户注意到我们应用程
我有一个 app.js 文件,其中包含如下 dojo amd 模式代码: require(["dojo/dom", ..], function(dom){ dom.byId('someId').i
我对“-gencode”语句中的“code=sm_X”选项有点困惑。 一个例子:NVCC 编译器选项有什么作用 -gencode arch=compute_13,code=sm_13 嵌入库中? 只有
我为我的表格使用 X-editable 框架。 但是我有一些问题。 $(document).ready(function() { $('.access').editable({
我一直在通过本教程学习 flask/python http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-wo
我想将 Vim 和 EMACS 用于 CNC、G 代码和 M 代码。 Vim 或 EMACS 是否有任何语法或模式来处理这种类型的代码? 最佳答案 一些快速搜索使我找到了 this vim 和 thi
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve this
这个问题在这里已经有了答案: Enabling markdown highlighting in Vim (5 个回答) 6年前关闭。 当我在 Vim 中编辑包含 Markdown 代码的 READM
我正在 Swift3 iOS 中开发视频应用程序。基本上我必须将视频 Assets 和音频与淡入淡出效果合并为一个并将其保存到 iPhone 画廊。为此,我使用以下方法: private func d
pipeline { agent any stages { stage('Build') { steps { e
我是一名优秀的程序员,十分优秀!