📜  Java ZipEntry getSize()函数及示例(1)

📅  最后修改于: 2023-12-03 15:01:32.836000             🧑  作者: Mango

Java ZipEntry getSize()函数及示例

Java ZipEntry中的getSize()方法用于获取文件或目录在压缩文件中的大小(以字节为单位)。该方法返回一个long类型的数据,如果该ZipEntry是一个目录,则返回0。

语法
public long getSize()
示例

以下示例演示如何使用getSize()方法:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public class UnzipFile {
    public static void main(String[] args) {
        try {
            // 创建ZipInputStream对象
            ZipInputStream zis = new ZipInputStream(new FileInputStream("example.zip"));

            // 获取ZipEntry对象
            ZipEntry entry = null;
            while ((entry = zis.getNextEntry()) != null) {
                // 打印文件名及文件在压缩文件中的大小
                System.out.println("Name: " + entry.getName() + ", Size: " + entry.getSize());

                // 创建输出流
                FileOutputStream fos = new FileOutputStream(entry.getName());
                byte[] buffer = new byte[1024];
                int len;
                while ((len = zis.read(buffer)) > 0) {
                    fos.write(buffer, 0, len);
                }
                fos.close();
                zis.closeEntry();
            }

            // 关闭ZipInputStream对象
            zis.closeEntry();
            zis.close();

            System.out.println("文件解压成功");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

输出:

Name: example.txt, Size: 29
Name: example_folder/, Size: 0
Name: example_folder/hello_world.txt, Size: 12
文件解压成功

在上面的示例中,我们使用ZipInputStream类和ZipEntry类来解压压缩文件,并打印出每个文件的名称和大小(如果是目录,则大小为0)。entry.getSize()方法用于获取文件或目录在压缩文件中的大小。

注意: getsize()方法在Java 7及其以前的版本中返回int类型数据。在Java 8及其以后的版本中,该方法返回long类型数据,以允许压缩文件的大小超过2 GB。