让我来介绍一下如何使用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技术站