在Java中,可以使用java.util.zip
包來處理文件的壓縮和解壓縮操作。以下是一些示例代碼,展示了如何使用這個包來壓縮和解壓縮文件。
import java.io.*;
import java.util.zip.*;
public static void zipFile(String sourceFile, String zipFileName) throws IOException {
// 創建一個新的ZIP文件
File zipFile = new File(zipFileName);
if (!zipFile.exists()) {
zipFile.createNewFile();
}
// 獲取源文件的輸入流
FileInputStream fis = new FileInputStream(sourceFile);
// 創建一個ZIP輸出流,寫入到ZIP文件中
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile));
// 創建一個ZIP條目
ZipEntry ze = new ZipEntry(sourceFile);
zos.putNextEntry(ze);
// 將源文件的內容寫入ZIP輸出流
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
zos.write(buffer, 0, length);
}
// 關閉ZIP條目和ZIP輸出流
zos.closeEntry();
zos.close();
fis.close();
}
public static void unzipFile(String zipFileName, String destDirectory) throws IOException {
// 獲取ZIP文件的輸入流
FileInputStream fis = new FileInputStream(zipFileName);
// 創建一個ZIP輸入流
ZipInputStream zis = new ZipInputStream(fis);
// 獲取ZIP文件中的下一個條目
ZipEntry ze = zis.getNextEntry();
while (ze != null) {
// 獲取條目的名稱
String fileName = ze.getName();
// 如果條目是一個目錄,創建一個新的目錄
if (fileName.endsWith("/")) {
File dir = new File(destDirectory + File.separator + fileName);
if (!dir.exists()) {
dir.mkdirs();
}
} else {
// 如果條目是一個文件,創建一個新的文件并寫入ZIP文件的內容
File outputFile = new File(destDirectory + File.separator + fileName);
if (!outputFile.exists()) {
outputFile.createNewFile();
}
FileOutputStream fos = new FileOutputStream(outputFile);
byte[] buffer = new byte[1024];
int length;
while ((length = zis.read(buffer)) > 0) {
fos.write(buffer, 0, length);
}
// 關閉文件輸出流
fos.close();
}
// 獲取下一個ZIP條目
ze = zis.getNextEntry();
}
// 關閉ZIP輸入流
zis.closeEntry();
zis.close();
fis.close();
}
public static void main(String[] args) {
try {
String sourceFile = "path/to/source/file.txt";
String zipFileName = "path/to/output/archive.zip";
zipFile(sourceFile, zipFileName);
String destDirectory = "path/to/destination/directory";
unzipFile(zipFileName, destDirectory);
} catch (IOException e) {
e.printStackTrace();
}
}
這些示例代碼展示了如何使用Java的java.util.zip
包來壓縮和解壓縮文件。請確保將示例代碼中的文件路徑替換為您自己的文件路徑。