91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java gzip如何壓縮文件夾

小億
86
2024-09-26 03:33:06
欄目: 編程語言

在Java中,你可以使用java.util.zip包中的類來壓縮文件夾。以下是一個示例代碼,展示了如何壓縮一個文件夾:

import java.io.*;
import java.nio.file.*;
import java.util.zip.*;

public class FolderGzip {
    public static void main(String[] args) {
        String folderToZip = "/path/to/folder";
        String zipFilePath = "/path/to/output.zip";

        try {
            compressFolder(folderToZip, zipFilePath);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void compressFolder(String folderPath, String zipFilePath) throws IOException {
        // 創建一個文件輸出流,寫入ZIP文件
        FileOutputStream fos = new FileOutputStream(zipFilePath);

        // 創建一個ZIP輸出流,寫入到文件輸出流中
        ZipOutputStream zos = new ZipOutputStream(fos);

        // 獲取文件夾中的所有文件和子文件夾
        Path rootPath = Paths.get(folderPath);
        Files.walk(rootPath)
             .filter(path -> !Files.isDirectory(path))
             .forEach(path -> {
                 try {
                     // 創建一個ZIP條目,使用相對路徑
                     ZipEntry zipEntry = new ZipEntry(rootPath.relativize(path).toString());
                     zos.putNextEntry(zipEntry);

                     // 讀取文件內容并將其寫入ZIP輸出流
                     try (InputStream fis = Files.newInputStream(path)) {
                         byte[] buffer = new byte[1024];
                         int bytesRead;
                         while ((bytesRead = fis.read(buffer)) != -1) {
                             zos.write(buffer, 0, bytesRead);
                         }
                     }

                     // 關閉ZIP條目,完成對該文件的壓縮
                     zos.closeEntry();
                 } catch (IOException e) {
                     e.printStackTrace();
                 }
             });

        // 關閉ZIP輸出流和文件輸出流
        zos.close();
        fos.close();
    }
}

在這個示例中,compressFolder方法接受要壓縮的文件夾路徑和輸出的ZIP文件路徑。它使用java.nio.file.Files.walk方法遍歷文件夾中的所有文件和子文件夾,并使用java.util.zip.ZipOutputStream將它們添加到ZIP文件中。

0
崇阳县| 茂名市| 西安市| 承德市| 海宁市| 丰都县| 渝北区| 柘荣县| 德兴市| 武功县| 萍乡市| 马公市| 钟祥市| 丰台区| 韶山市| 清徐县| 台前县| 共和县| 乡宁县| 揭阳市| 蒲城县| 轮台县| 阿城市| 沂水县| 随州市| 枣庄市| 南安市| 兴化市| 饶河县| 常山县| 迁西县| 鄯善县| 松滋市| 南汇区| 内丘县| 华蓥市| 南康市| 沁源县| 紫金县| 盐山县| 阳朔县|