java压缩文件与删除文件的示例代码

让我来介绍一下如何使用Java对文件进行压缩和删除。

压缩文件

Java中提供了zip压缩格式的支持,在使用时只需要使用java.util.zip包中的相关类即可。下面提供两个示例:

示例一:压缩单个文件

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

public class ZipDemo {
    public static void main(String[] args) {
        String srcFilePath = "D:\\test.txt"; // 源文件路径
        String destFilePath = "D:\\test.zip"; // 压缩文件路径
        try {
            FileOutputStream fos = new FileOutputStream(destFilePath);
            ZipOutputStream zos = new ZipOutputStream(fos);
            File srcFile = new File(srcFilePath);
            FileInputStream fis = new FileInputStream(srcFile);
            ZipEntry ze = new ZipEntry(srcFile.getName());
            zos.putNextEntry(ze);
            byte[] buffer = new byte[1024];
            int length;
            while ((length = fis.read(buffer)) > 0) {
                zos.write(buffer, 0, length);
            }
            fis.close();
            zos.closeEntry();
            zos.close();
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,我们定义了一个ZipOutputStream对象,指定压缩文件的输出流,然后调用putNextEntry方法向压缩文件中添加ZipEntry对象,表示要压缩的文件,最后将文件流读入缓存区中,并写入到压缩文件中。

示例二:批量压缩指定目录下的所有文件

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

public class ZipDemo {
    static final int BUFFER_SIZE = 1024;
    public static void main(String[] args) {
        String dirPath = "D:\\test"; // 需要压缩的目录路径
        String destZipFilePath = "D:\\test.zip"; // 压缩文件路径
        try {
            FileOutputStream fos = new FileOutputStream(destZipFilePath);
            ZipOutputStream zos = new ZipOutputStream(fos);
            File dir = new File(dirPath);
            File[] fileList = dir.listFiles();
            for (File file : fileList) {
                if (file.isFile()) {
                    FileInputStream fis = new FileInputStream(file);
                    ZipEntry ze = new ZipEntry(file.getName());
                    zos.putNextEntry(ze);
                    byte[] buffer = new byte[BUFFER_SIZE];
                    int length;
                    while ((length = fis.read(buffer)) > 0) {
                        zos.write(buffer, 0, length);
                    }
                    fis.close();
                    zos.closeEntry();
                }
            }
            zos.close();
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,我们首先获取指定目录下的所有文件,遍历这些文件,如果是文件则进行压缩。与示例一类似,我们也是使用ZipOutputStream类进行压缩,只不过在遍历目录时需要添加一些判断条件。

删除文件

删除文件也是Java中常见的操作之一,我们可以使用File类中的delete方法来删除文件。下面提供两个示例:

示例一:删除单个文件

import java.io.*;

public class DeleteDemo {
    public static void main(String[] args) {
        String filePath = "D:\\test.txt";
        File file = new File(filePath);
        if (file.delete()) {
            System.out.println("删除成功!");
        } else {
            System.out.println("删除失败!");
        }
    }
}

上述代码中,我们首先通过给定的文件路径创建一个File对象,然后调用delete方法删除该文件。

示例二:删除指定目录下的所有文件

import java.io.*;

public class DeleteDemo {
    public static void main(String[] args) {
        String dirPath = "D:\\test";
        File dir = new File(dirPath);
        File[] fileList = dir.listFiles();
        for (File file : fileList) {
            if (file.isFile()) {
                if (file.delete()) {
                    System.out.println("删除成功!");
                } else {
                    System.out.println("删除失败!");
                }
            }
        }
    }
}

上述代码中,我们首先获取指定目录下的所有文件,遍历这些文件,如果是文件则进行删除。与示例一类似,我们也是使用File类中的delete方法进行删除,只不过在遍历目录时需要添加一些判断条件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java压缩文件与删除文件的示例代码 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Java对象级别与类级别的同步锁synchronized语法示例

    Java中的synchronized关键字提供了一种在多线程情况下同步访问共享资源的机制。synchronized关键字有两种用法:对象级别的同步和类级别的同步。 对象级别的同步锁 对象级别的同步锁可以保证同一时刻只有一个线程能够访问该对象的synchronized方法或代码块。对象级别的同步锁可以使用对象的实例作为锁,即synchronized(obj){…

    Java 2023年5月26日
    00
  • tomcat启动不了一闪而过怎么办?tomcat一闪而过无法启动现象的解决方法

    当Tomcat启动时,若一闪而过无法启动,则很可能出现以下问题: Java环境未配置正确,或者Java环境变量未正确设置 Tomcat配置文件中的端口号已被占用 Tomcat安装路径中的文件丢失或损坏 Tomcat版本与当前Java版本不匹配 为解决tomcat无法启动问题,请根据以下步骤: 1. 检查Java环境配置 在cmd命令行工具中输入java –v…

    Java 2023年5月19日
    00
  • 基于Java中两种jersey文件上传方式

    以下是关于Java中使用Jersey实现文件上传的两种方法的详细攻略: 1. 使用FormDataMultiPart方式上传文件 实现步骤 添加Jersey依赖 在pom.xml中添加以下依赖: <dependency> <groupId>org.glassfish.jersey.media</groupId> <a…

    Java 2023年5月20日
    00
  • jsp通过自定义标签库实现数据列表显示的方法

    下面我将详细讲解如何通过自定义标签库来实现数据列表显示的方法。 一、什么是自定义标签库 JSP中的自定义标签库,一般是指用户自己编写的标签库,可以提供一些标签,用于扩展JSP的标签支持。自定义标签库大多用于封装一些比较复杂的操作,减少JSP页面的代码量,提高代码的可读性和可维护性。 二、自定义标签库实现数据列表显示的方法 1. 编写自定义标签类 我们可以通过…

    Java 2023年6月15日
    00
  • 在Java中Scanner的用法总结

    请看下面的攻略。 在Java中Scanner的用法总结 简介 在Java中,Scanner类是一个非常常用的输入类,它可以扫描用户输入的各种数据类型(如整数、浮点数、字符串等)并以指定的格式输出。本文将详细介绍Scanner类的用法,帮助读者快速、准确地学会使用Scanner类。 常用方法 1. 实例化一个Scanner对象 import java.util…

    Java 2023年5月26日
    00
  • Spring boot创建自定义starter的完整步骤

    Spring Boot创建自定义starter的完整步骤 在Spring Boot中,我们可以创建自定义starter来封装一些常用的功能,以便于在其他项目中重复使用。本文将详细讲解Spring Boot创建自定义starter的完整步骤,并提供两个示例。 1. 创建starter项目 以下是创建starter项目的基本流程: 在IDEA中创建一个Maven…

    Java 2023年5月15日
    00
  • 教你一步到位部署运行MyBatis3源码(保姆级)

    教你一步到位部署运行MyBatis3源码(保姆级) 前言 MyBatis 是一个开源的免费的 Java 持久层框架,它利用简单的 XML 或注解代码来配置和映射数据库操作。 在实际的开发中,我们经常会直接使用 MyBatis 这个框架来进行数据库的操作,但有时候会需要修改或者扩展 MyBatis3 的源码来满足自己的需求,那么这时候就需要我们先将 MyBat…

    Java 2023年5月20日
    00
  • Java 将字符串动态生成字节码的实现方法

    Java提供了内置的动态生成字节码的API——java.lang.invoke.MethodHandles.Lookup,该API可以通过反射调用Java虚拟机的动态字节码生成引擎,用于在运行时生成并加载字节码。本攻略将详细讲解使用该API动态生成字节码的完整过程。 1. 创建一个类加载器 在Java中,每个类都必须通过类加载器进行加载才能被JVM识别并执行…

    Java 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部