在Java中,可以使用java.util.zip包中的类来进行数据的压缩和解压。以下是一个简单的示例,演示了如何使用这些类进行文件的压缩和解压。
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipUtil {
public static void zipFile(String sourceFilePath, String zipFilePath) throws IOException {
FileInputStream fis = null;
FileOutputStream fos = null;
ZipOutputStream zos = null;
try {
fis = new FileInputStream(sourceFilePath);
fos = new FileOutputStream(zipFilePath);
zos = new ZipOutputStream(fos);
ZipEntry zipEntry = new ZipEntry(sourceFilePath);
zos.putNextEntry(zipEntry);
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) > 0) {
zos.write(buffer, 0, len);
}
zos.closeEntry();
} finally {
if (zos != null) {
zos.close();
}
if (fos != null) {
fos.close();
}
if (fis != null) {
fis.close();
}
}
}
public static void main(String[] args) {
try {
zipFile("path/to/source/file.txt", "path/to/destination/file.zip");
System.out.println("File compressed successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class UnzipUtil {
public static void unzipFile(String zipFilePath, String destDirectory) throws IOException {
FileInputStream fis = null;
ZipInputStream zis = null;
ZipEntry zipEntry = null;
try {
fis = new FileInputStream(zipFilePath);
zis = new ZipInputStream(fis);
while ((zipEntry = zis.getNextEntry()) != null) {
String filePath = destDirectory + File.separator + zipEntry.getName();
if (!zipEntry.isDirectory()) {
extractFile(zis, filePath);
} else {
File dir = new File(filePath);
dir.mkdirs();
}
zis.closeEntry();
}
} finally {
if (zis != null) {
zis.close();
}
if (fis != null) {
fis.close();
}
}
}
private static void extractFile(ZipInputStream zis, String filePath) throws IOException {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(filePath);
byte[] buffer = new byte[1024];
int len;
while ((len = zis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
} finally {
if (fos != null) {
fos.close();
}
}
}
public static void main(String[] args) {
try {
unzipFile("path/to/destination/file.zip", "path/to/extract/directory");
System.out.println("File extracted successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
这两个示例分别演示了如何压缩和解压文件。你可以根据需要修改这些示例,以适应你的具体需求。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。