legongju.com
我们一直在努力
2025-01-20 07:13 | 星期一

java解压命令如何进行文件校验

?Java?,?????java.util.zip?????????????????????????,???????Java??ZIP????????????

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

public class UnzipAndVerify {

    public static void main(String[] args) {
        String zipFilePath = "path/to/your/zipfile.zip";
        String destDirectory = "path/to/your/destination/directory";
        String expectedChecksum = "expected_checksum_value"; // ??MD5?SHA-1???????????

        try {
            // ????
            unzip(zipFilePath, destDirectory);

            // ???????????
            String actualChecksum = calculateChecksum(destDirectory + File.separator + "your_file_to_verify");

            // ?????
            if (expectedChecksum.equals(actualChecksum)) {
                System.out.println("??????!");
            } else {
                System.out.println("??????!");
            }
        } catch (IOException | NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
    }

    public static void unzip(String zipFilePath, String destDirectory) throws IOException {
        File destDir = new File(destDirectory);
        if (!destDir.exists()) {
            destDir.mkdir();
        }

        ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipFilePath));
        ZipEntry entry = zipIn.getNextEntry();

        while (entry != null) {
            String filePath = destDirectory + File.separator + entry.getName();
            if (!entry.isDirectory()) {
                extractFile(zipIn, filePath);
            } else {
                File dir = new File(filePath);
                dir.mkdirs();
            }
            zipIn.closeEntry();
            entry = zipIn.getNextEntry();
        }
        zipIn.close();
    }

    public static void extractFile(ZipInputStream zipIn, String filePath) throws IOException {
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));
        byte[] bytesIn = new byte[4096];
        int read = 0;
        while ((read = zipIn.read(bytesIn)) != -1) {
            bos.write(bytesIn, 0, read);
        }
        bos.close();
    }

    public static String calculateChecksum(String filePath) throws IOException, NoSuchAlgorithmException {
        MessageDigest md = MessageDigest.getInstance("MD5"); // ???SHA-1???
        FileInputStream fis = new FileInputStream(filePath);
        byte[] buffer = new byte[1024];
        int bytesRead;
        while ((bytesRead = fis.read(buffer)) != -1) {
            md.update(buffer, 0, bytesRead);
        }
        fis.close();
        byte[] digest = md.digest();
        StringBuilder sb = new StringBuilder();
        for (byte b : digest) {
            sb.append(String.format("x", b));
        }
        return sb.toString();
    }
}

?????,??????ZIP??,??????????MD5??????,????????????????????????????,????????;??,??????????,???????????zipFilePath?destDirectory?expectedChecksum?????

未经允许不得转载 » 本文链接:https://www.legongju.com/article/39447.html

相关推荐

  • Java编程:stdin的多线程处理

    Java编程:stdin的多线程处理

    在Java编程中,可以使用多线程来处理stdin(标准输入),以实现并发处理输入数据的功能。以下是一个简单的示例代码,演示了如何使用多线程处理stdin输入数据:

  • Java中如何实现声音的录制与播放

    Java中如何实现声音的录制与播放

    在Java中实现声音的录制与播放可以使用JavaSound API。以下是一个简单的示例代码:
    录制声音:
    import javax.sound.sampled.*; public class AudioRec...

  • Java sound编程实战技巧分享

    Java sound编程实战技巧分享

    在Java中实现音频处理和播放可以使用Java Sound API。下面是一些Java Sound编程的实战技巧: 使用AudioSystem类来获取音频输入和输出设备。可以使用getMixerInfo...

  • 如何在Java应用中集成声音功能

    如何在Java应用中集成声音功能

    在Java应用中集成声音功能可以使用Java内置的音频库javax.sound,以下是一些基本步骤: 导入javax.sound包:在代码中导入javax.sound包中的相关类。 import java...

  • java解压命令支持哪些操作系统

    java解压命令支持哪些操作系统

    Java解压命令主要依赖于Java标准库中的java.util.zip包,因此,它在所有支持Java的平台上都是可用的,包括Windows、macOS和Linux。以下是不同操作系统下使用Java...

  • java解压命令怎样处理多文件

    java解压命令怎样处理多文件

    在Java中,你可以使用java.util.zip包中的类来解压多个文件。以下是一个简单的示例,展示了如何使用这些类来解压一个ZIP文件中的所有文件:
    import java.io...

  • php和linux怎样进行安全加固

    php和linux怎样进行安全加固

    为了确保PHP和Linux环境的安全性,以下是一些关键的安全加固措施:
    PHP安全加固措施 启用PHP安全模式:通过修改php.ini文件中的safe_mode = on来启用安全模...

  • php和linux在Web开发中的优势

    php和linux在Web开发中的优势

    PHP和Linux在Web开发中各自展现出独特的优势,它们的合作更是为Web开发带来了强大的动力。以下是对PHP和Linux在Web开发中的优势分析:
    PHP在Web开发中的优势...