Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调用函数ZipEntry.getSize时,库是否首先解压缩内存中的文件?_Java_Zip_Zipfile - Fatal编程技术网

Java 调用函数ZipEntry.getSize时,库是否首先解压缩内存中的文件?

Java 调用函数ZipEntry.getSize时,库是否首先解压缩内存中的文件?,java,zip,zipfile,Java,Zip,Zipfile,在解压之前,我想检查未来解压文件的大小。有人能确认库不是从解压内存中的文件开始得到最终解压大小的吗 我的代码: import java.io.*; import java.util.Enumeration; import java.util.zip.ZipFile; import java.util.zip.ZipEntry; public class ZipGetMethod { public static void main(String[] args) { String fi

在解压之前,我想检查未来解压文件的大小。有人能确认库不是从解压内存中的文件开始得到最终解压大小的吗

我的代码:

import java.io.*;
import java.util.Enumeration;
import java.util.zip.ZipFile;
import java.util.zip.ZipEntry;

public class ZipGetMethod {
  public static void main(String[] args) {
    String file = "file.zip";
    try {
      ZipFile zipfile = new ZipFile(file);
      Enumeration e = zipfile.entries();
      while (e.hasMoreElements()) {
        ZipEntry zipentry = (ZipEntry) e.nextElement();
        String entryName = zipentry.getName();
        Date lastModify = new Date(zipentry.getTime());
        long uncomSize = zipentry.getSize();
        long comSize = zipentry.getCompressedSize();


    } catch (IOException ex) {
      System.out.println("IOException is : " + ex);
    }
  } 
}

否。每个文件的未压缩大小存储在Zip索引中,因此无需解压缩即可找到给定文件的未压缩大小。

否。每个文件的未压缩大小存储在Zip索引中,因此,查找给定文件的未压缩大小不需要解压缩。

否。每个文件的未压缩大小存储在Zip索引中,因此查找给定文件的未压缩大小不需要解压缩。

否。每个文件的未压缩大小存储在Zip索引中,因此,无需解压缩即可找到给定文件的未压缩大小。

ZIP格式将未压缩文件大小存储为中心目录()的一部分,无需处理实际压缩数据以确定文件大小

现在,关于您正在使用的Java实现,这取决于平台,但它很可能不会处理文件数据或本地头,并且会引用中心目录(如果zip文件已附加数据,则会引用各种中心目录)


快速查看OpenJDK实现()表明Zippentry加载了来自ZIP目录的文件大小数据,
getSize()
只返回该值,而不需要进一步检查压缩数据。

ZIP格式将未压缩的文件大小存储为中心目录()的一部分,不需要处理实际的压缩数据来确定文件大小

现在,关于您正在使用的Java实现,这取决于平台,但它很可能不会处理文件数据或本地头,并且会引用中心目录(如果zip文件已附加数据,则会引用各种中心目录)


快速查看OpenJDK实现()表明Zippentry加载了来自ZIP目录的文件大小数据,
getSize()
只返回该值,而不需要进一步检查压缩数据。

ZIP格式将未压缩的文件大小存储为中心目录()的一部分,不需要处理实际的压缩数据来确定文件大小

现在,关于您正在使用的Java实现,这取决于平台,但它很可能不会处理文件数据或本地头,并且会引用中心目录(如果zip文件已附加数据,则会引用各种中心目录)


快速查看OpenJDK实现()表明Zippentry加载了来自ZIP目录的文件大小数据,
getSize()
只返回该值,而不需要进一步检查压缩数据。

ZIP格式将未压缩的文件大小存储为中心目录()的一部分,不需要处理实际的压缩数据来确定文件大小

现在,关于您正在使用的Java实现,这取决于平台,但它很可能不会处理文件数据或本地头,并且会引用中心目录(如果zip文件已附加数据,则会引用各种中心目录)


快速查看OpenJDK实现()表明ZipEntry中加载了来自ZIP目录的文件大小数据,
getSize()
只返回该值,无需进一步检查压缩数据。

添加了关于OpenJDK实现的最后一段。一个好的答案通过引用实际的源代码变得非常好。添加了关于OpenJDK实现的最后一段。一个好的答案通过引用实际的源代码变得非常好。添加了关于OpenJDK实现。一个很好的答案通过引用实际的源代码变得很好。添加了关于OpenJDK实现的最后一段。一个很好的答案通过引用实际的源代码变得很好。