gpt4 book ai didi

java.util.zip.ZipEntry类的使用及代码示例

转载 作者:知者 更新时间:2024-03-18 04:08:40 25 4
gpt4 key购买 nike

本文整理了Java中java.util.zip.ZipEntry类的一些代码示例,展示了ZipEntry类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZipEntry类的具体详情如下:
包路径:java.util.zip.ZipEntry
类名称: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);

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com