- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中java.util.zip.ZipEntry
类的一些代码示例,展示了ZipEntry
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZipEntry
类的具体详情如下:
包路径:java.util.zip.ZipEntry
类名称:ZipEntry
[英]An entry within a zip file. An entry has attributes such as its name (which is actually a path) and the uncompressed size of the corresponding data. An entry does not contain the data itself, but can be used as a key with ZipFile#getInputStream. The class documentation for ZipInputStream and ZipOutputStream shows how ZipEntry is used in conjunction with those two classes.
[中]zip文件中的条目。条目具有名称(实际上是路径)和相应数据的未压缩大小等属性。条目本身不包含数据,但可以用作ZipFile#getInputStream的键。ZipInputStream和ZipOutStream的类文档显示了ZipPentry如何与这两个类结合使用。
canonical example by Tabnine
public void zipFile(File srcFile, File zipFile) throws IOException {
try (FileInputStream fis = new FileInputStream(srcFile);
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile))) {
zos.putNextEntry(new ZipEntry(srcFile.getName()));
int len;
byte[] buffer = new byte[1024];
while ((len = fis.read(buffer)) > 0) {
zos.write(buffer, 0, len);
}
zos.closeEntry();
}
}
代码示例来源:origin: skylot/jadx
private static List<String> getZipFileList(File file) {
List<String> filesList = new ArrayList<>();
try (ZipFile zipFile = new ZipFile(file)) {
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
filesList.add(entry.getName());
}
} catch (Exception e) {
LOG.error("Error read zip file '{}'", file.getAbsolutePath(), e);
}
return filesList;
}
代码示例来源:origin: apache/incubator-druid
public static void makeEvilZip(File outputFile) throws IOException
{
ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(outputFile));
ZipEntry zipEntry = new ZipEntry("../../../../../../../../../../../../../../../tmp/evil.txt");
zipOutputStream.putNextEntry(zipEntry);
byte[] output = StringUtils.toUtf8("evil text");
zipOutputStream.write(output);
zipOutputStream.closeEntry();
zipOutputStream.close();
}
}
代码示例来源:origin: Tencent/tinker
checkDirectory(filePath);
ZipFile zipFile = new ZipFile(fileName);
Enumeration enumeration = zipFile.entries();
try {
while (enumeration.hasMoreElements()) {
ZipEntry entry = (ZipEntry) enumeration.nextElement();
if (entry.isDirectory()) {
new File(filePath, entry.getName()).mkdirs();
continue;
BufferedInputStream bis = new BufferedInputStream(zipFile.getInputStream(entry));
File file = new File(filePath + File.separator + entry.getName());
BufferedOutputStream bos = null;
try {
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos, TypedValue.BUFFER_SIZE);
fos.write(buf, 0, len);
bos.flush();
bos.close();
代码示例来源:origin: skylot/jadx
public static boolean isZipBomb(ZipEntry entry) {
long compressedSize = entry.getCompressedSize();
long uncompressedSize = entry.getSize();
if (compressedSize < 0 || uncompressedSize < 0) {
LOG.error("Zip bomb attack detected, invalid sizes: compressed {}, uncompressed {}, name {}",
compressedSize, uncompressedSize, entry.getName());
return true;
}
if (compressedSize * MAX_SIZE_DIFF < uncompressedSize) {
LOG.error("Zip bomb attack detected, invalid sizes: compressed {}, uncompressed {}, name {}",
compressedSize, uncompressedSize, entry.getName());
return true;
}
return false;
}
代码示例来源:origin: spotbugs/spotbugs
public ZipEntry newZipEntry(ZipEntry ze) {
ZipEntry ze2 = new ZipEntry(ze.getName());
ze2.setComment(ze.getComment());
ze2.setTime(ze.getTime());
ze2.setExtra(ze.getExtra());
return ze2;
}
代码示例来源:origin: zeroturnaround/zt-zip
public void setTime(ZipEntry newInstance, ZipEntry oldInstance) {
long time = oldInstance.getTime();
if (time != -1) {
newInstance.setTime(time);
}
}
代码示例来源:origin: Tencent/tinker
if (zipEntryPathList != null) {
for (ZipEntryPath zipEntryPath : zipEntryPathList) {
zipEntryPathMap.put(zipEntryPath.zipEntry.getName(), zipEntryPath);
needToAddEntryNameList.add(zipEntryPath.zipEntry.getName());
zipOutputStream = new ZipOutputStream(new FileOutputStream(outputZipFullFilename));
if (inputZipFullFilename != null) {
zipFile = new ZipFile(inputZipFullFilename);
Enumeration<? extends ZipEntry> enumeration = zipFile.entries();
while (enumeration.hasMoreElements()) {
ZipEntry zipEntry = enumeration.nextElement();
String zipEntryName = zipEntry.getName();
InputStream inputStream = null;
if (zipEntryPathMap.containsKey(zipEntryName)) {
if (zipEntryPath.replace) {
zipEntry = zipEntryPath.zipEntry;
inputStream = new FileInputStream(zipEntryPath.fullFilename);
ZipEntry newZipEntry = new ZipEntry(zipEntryName);
addZipEntry(zipOutputStream, newZipEntry, inputStream);
ZipEntryPath zipEntryPath = zipEntryPathMap.get(zipEntryName);
ZipEntry zipEntry = zipEntryPath.zipEntry;
InputStream inputStream = new FileInputStream(zipEntryPath.fullFilename);
if (zipProcessor != null) {
inputStream = zipProcessor.zipEntryProcess(zipEntry.getName(), inputStream);
代码示例来源:origin: google/j2objc
try{
while ((entry = zip.getNextEntry()) != null) {
if (!entry.isDirectory()) {
log("ignoring " + entry.toString());
ZipEntry outEntry = new ZipEntry(entry.getName());
outEntry.setMethod(entry.getMethod());
outEntry.setComment(entry.getComment());
outEntry.setSize(bytes.length);
if(outEntry.getMethod() == ZipEntry.STORED){
CRC32 crc = new CRC32();
crc.update(bytes);
outEntry.setCrc( crc.getValue() );
outEntry.setCompressedSize(bytes.length);
out.putNextEntry(outEntry);
out.write(bytes);
out.closeEntry();
zip.closeEntry();
out.close();
}finally{
fout.close();
代码示例来源:origin: alibaba/arthas
int BUFFER = 1024 * 8;
zip = new ZipFile(file);
String newPath = extractFolder;
Enumeration<? extends ZipEntry> zipFileEntries = zip.entries();
while (zipFileEntries.hasMoreElements()) {
ZipEntry entry = (ZipEntry) zipFileEntries.nextElement();
String currentEntry = entry.getName();
if (!entry.isDirectory()) {
BufferedInputStream is = null;
BufferedOutputStream dest = null;
try {
is = new BufferedInputStream(zip.getInputStream(entry));
int currentByte;
FileOutputStream fos = new FileOutputStream(destFile);
dest = new BufferedOutputStream(fos, BUFFER);
dest.write(data, 0, currentByte);
dest.flush();
} finally {
close(dest);
代码示例来源:origin: stackoverflow.com
is = new FileInputStream(path + zipname);
zis = new ZipInputStream(new BufferedInputStream(is));
ZipEntry ze;
byte[] buffer = new byte[1024];
int count;
while ((ze = zis.getNextEntry()) != null)
filename = ze.getName();
if (ze.isDirectory()) {
File fmd = new File(path + filename);
fmd.mkdirs();
FileOutputStream fout = new FileOutputStream(path + filename);
fout.write(buffer, 0, count);
fout.close();
zis.closeEntry();
代码示例来源:origin: stackoverflow.com
List<String> classNames = new ArrayList<String>();
ZipInputStream zip = new ZipInputStream(new FileInputStream("/path/to/jar/file.jar"));
for (ZipEntry entry = zip.getNextEntry(); entry != null; entry = zip.getNextEntry()) {
if (!entry.isDirectory() && entry.getName().endsWith(".class")) {
// This ZipEntry represents a class. Now, what class does it represent?
String className = entry.getName().replace('/', '.'); // including ".class"
classNames.add(className.substring(0, className.length() - ".class".length()));
}
}
代码示例来源:origin: Tencent/tinker
ZipOutputStream zipOutputStream = null;
try {
newZipFile = new ZipFile(newZipFullFilename);
Enumeration<? extends ZipEntry> entries = newZipFile.entries();
FileUtil.createFile(differentOutputFullFilename);
zipOutputStream = new ZipOutputStream(new FileOutputStream(differentOutputFullFilename));
while (entries.hasMoreElements()) {
ZipEntry zipEntry = entries.nextElement();
if (!zipEntry.isDirectory()) {
String zipEntryName = zipEntry.getName();
String oldZipEntryHash = map.get(zipEntryName);
String newZipEntryHash = zipEntry.getCrc() + Constant.Symbol.DOT + zipEntry.getSize();
addZipEntry(zipOutputStream, zipEntry, newZipFile.getInputStream(zipEntry));
代码示例来源:origin: iSoron/uhabits
private void addFileToZip(ZipOutputStream zos, String filename)
throws IOException
{
FileInputStream fis =
new FileInputStream(new File(exportDirName + filename));
ZipEntry ze = new ZipEntry(filename);
zos.putNextEntry(ze);
int length;
byte bytes[] = new byte[1024];
while ((length = fis.read(bytes)) >= 0) zos.write(bytes, 0, length);
zos.closeEntry();
fis.close();
}
代码示例来源:origin: scouter-project/scouter
static public void recieveZipFile(ZipInputStream zis, String relativePath) throws Exception {
ZipEntry zipEntry = null;
int readSize;
byte[] buffer = new byte[FILE_BUFFER_SIZE];
while(null != (zipEntry = zis.getNextEntry())){
File outFile = new File(relativePath + "/" + zipEntry.getName());
File parentFolder = outFile.getParentFile();
if(parentFolder.exists() == false){
parentFolder.mkdirs();
}
BufferedOutputStream fos = null;
try{
fos = new BufferedOutputStream(new FileOutputStream(outFile));
while((readSize = zis.read(buffer)) > 0){
fos.write(buffer, 0, readSize);
}
fos.flush();
}finally{
if(fos != null){
try { fos.close(); }catch(Exception ex){}
}
}
}
}
代码示例来源:origin: confluentinc/ksql
try (ZipInputStream input = new ZipInputStream(new FileInputStream(sourceFile))) {
while ((entry = input.getNextEntry()) != null) {
if (entry.isDirectory()) {
continue;
final File file = new File(outputDir, entry.getName());
final File parent = file.getParentFile();
if (!parent.exists() && !parent.mkdirs()) {
try (FileOutputStream output = new FileOutputStream(file)) {
IOUtils.copy(input, output);
} catch (final Exception e) {
throw new RuntimeException("Error expanding entry '" + entry.getName() + "'", e);
input.closeEntry();
} catch (final IOException e) {
throw new KsqlException(
代码示例来源:origin: gocd/gocd
private void extractTo(ZipEntry entry, InputStream entryInputStream, File toDir) throws IOException {
bombIfZipEntryPathContainsDirectoryTraversalCharacters(entry.getName());
String entryName = nonRootedEntryName(entry);
try (FileOutputStream os = new FileOutputStream(outputFile)) {
IOUtils.copyLarge(entryInputStream, os);
if (zipEntryHandler != null) {
FileInputStream stream = null;
try {
stream = new FileInputStream(outputFile);
zipEntryHandler.handleEntry(entry, stream);
} finally {
if (stream != null) {
try {
stream.close();
} catch (IOException e) {
LOGGER.warn("Failed to close the file-handle to file '{}' which was created as artifact download.", outputFile.getAbsolutePath(), e);
代码示例来源:origin: apache/incubator-druid
@Test
public void testDecompressZip() throws IOException
{
final File tmpDir = temporaryFolder.newFolder("testDecompressZip");
final File zipFile = new File(tmpDir, testFile.getName() + ".zip");
Assert.assertFalse(zipFile.exists());
try (final ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFile))) {
out.putNextEntry(new ZipEntry("cool.file"));
ByteStreams.copy(new FileInputStream(testFile), out);
out.closeEntry();
}
try (final InputStream inputStream = CompressionUtils.decompress(new FileInputStream(zipFile), zipFile.getName())) {
assertGoodDataStream(inputStream);
}
}
代码示例来源:origin: apache/storm
private void readArchive(ZipFile zipFile) throws IOException {
Enumeration<? extends ZipEntry> zipEnums = zipFile.entries();
while (zipEnums.hasMoreElements()) {
ZipEntry entry = zipEnums.nextElement();
if (!entry.isDirectory()) {
if (defaultsConf == null && entry.getName().equals("defaults.yaml")) {
try (InputStreamReader isr = new InputStreamReader(zipFile.getInputStream(entry))) {
defaultsConf = (Map<String, Object>) yaml.load(isr);
}
}
if (stormConf == null && entry.getName().equals("storm.yaml")) {
try (InputStreamReader isr = new InputStreamReader(zipFile.getInputStream(entry))) {
stormConf = (Map<String, Object>) yaml.load(isr);
}
}
}
}
}
}
代码示例来源:origin: Tencent/tinker
InputStream patchFileStream = null;
try {
oldDexStream = new BufferedInputStream(baseApk.getInputStream(oldDexEntry));
patchFileStream = (patchFileEntry != null ? new BufferedInputStream(patchPkg.getInputStream(patchFileEntry)) : null);
ZipOutputStream zos = null;
try {
zos = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(patchedDexFile)));
zos.putNextEntry(new ZipEntry(ShareConstants.DEX_IN_JAR));
zis = new ZipInputStream(oldDexStream);
ZipEntry entry;
while ((entry = zis.getNextEntry()) != null) {
if (ShareConstants.DEX_IN_JAR.equals(entry.getName())) break;
new DexPatchApplier(oldDexStream, patchFileStream).executeAndSaveTo(zos);
zos.closeEntry();
} finally {
StreamUtil.closeQuietly(zos);
我在这个网站上发布的代码有这个问题 https://developers.google.com/drive/quickstart-cs是 Google Drive 快速入门的开发人员站点。我按照网站上
我正在尝试制作一个非常简单的 Kafka Producer,目前正在关注 producer example除了我的制作人没有分区程序类。 将所需文件导出到 jar 后,我将它们传输到我的 Linux
问题 在java中,我有一个“Util项目”,在进行单元测试时使用另一个“Mock项目”。 我的问题是“模拟项目”也使用“Util项目”来构建一些模拟对象。 当我使用 Maven 构建项目时,我无法构
据我所知,这些包已经存在很长时间了。但是,我从未见过它们的实际用法。而且这些包似乎不成熟,不再维护。如果是,为什么这些包现在存在? 最佳答案 包裹automata被 scala.xml.dtd 使用,
关闭。这个问题需要debugging details .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 1年前关闭。 Improve this question Co
在java.util.Collections中,有一个方法: public static void fill(List list, T obj) 用第二个参数指定的对象填充第一个参数指定的List。
我不明白它要我做什么。分配给 sentence正在工作: val sentences : java.util.List[CoreMap] = document.get(classOf[Sentence
在我的 React 应用程序中,我想使用一些实用程序。我见过两种不同的方法。第一个是,只是创建函数并将其导出。第二个是,创建一个 Util 类并导出一个对象,这样它就不能被实例化(静态类)。 clas
我有一个 util 类,它接受 String jwtToken 和 Key key 并使用 io.jsonwebtoken.jwts 解码 jwt。 但是,我无法对此进行测试。原因是,我无法模拟公钥并
我有使用目标命名空间的专有架构 xmlns:ax216="http://util.java/xsd" 这给我带来了从 java (java.util.xsd) 开始生成禁止的(由 Java 安全管理器
我正在阅读集合以查看 Javadocs 中的实现层次结构。 Collections声明为public class Collections extendds Object Collection声明为pu
我正在使用 Spring-boot 应用程序,我可以在其中连接 Azure 应用程序配置。但是当我尝试使用内容类型应用程序/JSON 读取值时出现错误。 我的Java类 @ConfigurationP
我正在使用 Spring-boot 应用程序,我可以在其中连接 Azure 应用程序配置。但是当我尝试使用内容类型应用程序/JSON 读取值时出现错误。 我的Java类 @ConfigurationP
我在使用格式说明符时遇到问题。这是否意味着我正在使用 %d? public static void main(String[] args) { double y, x; for (x =
鉴于此代码 import java.util.Iterator; private static List someList = new ArrayList(); public static void
我正在 HackerEarth 解决问题,我无法弄清楚为什么我的程序在命令行上正确运行并给出正确的结果,但在代码编辑器上运行时却给出 java.util.NoSuchElementException
我正在尝试使用以下代码使用对象列表列表中的数据填充tableModel readExcel.readSheet(0): TableModel tableModel = new DefaultTabl
java.util.Set 、 java.util.List 和其他 Collection 接口(interface)不可序列化。需要一个简单、直接的解决方案来在可序列化的 POJO 中使用它。 pu
我试图从 servlet 返回数据库搜索结果的 ArrayList 以显示在 jsp 页面上。 在servlet中设置arraylist作为请求的属性,并将请求转发到jsp页面。当我尝试在 jsp 页
我是android新手,最近我试图从firebase中提取数据到recyclerview/cardview中以垂直布局显示数据,它显示将Hashmap转换为Arraylist的错误,其中代码是:
我是一名优秀的程序员,十分优秀!