实现一个压缩包工具类,可以使用Java提供的ZipOutputStream和ZipEntry类来实现压缩功能,同时可以使用ZipInputStream和ZipEntry类实现解压缩功能。

1. 压缩文件
使用ZipOutputStream将需要压缩的文件逐个传入压缩包,并使用ZipEntry给每个文件添加一个入口。

2. 创建ZipOutputStream对象,并指定压缩包的输出路径和名称。
```java
String zipFilePath = "C:/path/to/zipfile.zip";
ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(zipFilePath));
```
3. 遍历需要压缩的文件列表,将每个文件压缩并添加到压缩包中。
```java
String[] filesToCompress = {"C:/path/to/file1.txt", "C:/path/to/file2.txt"};
for (String file : filesToCompress) {
File fileToCompress = new File(file);
FileInputStream fileInputStream = new FileInputStream(fileToCompress);
ZipEntry zipEntry = new ZipEntry(fileToCompress.getName());
zipOutputStream.putNextEntry(zipEntry);

byte[] buffer = new byte[1024];
int length;
while ((length = fileInputStream.read(buffer)) > 0) {
zipOutputStream.write(buffer, 0, length);
}

fileInputStream.close();
zipOutputStream.closeEntry();
}
```
4.关闭ZipOutputStream对象,完成压缩。
```java
zipOutputStream.close();
```

2. 解压缩文件
使用ZipInputStream和ZipEntry类来实现解压功能,先创建一个ZipInputStream对象读取压缩包内容,然后遍历每个ZipEntry,将每个文件解压到指定的目录下。

2.1 创建ZipInputStream对象,指定需要解压的压缩包路径。
```java
String zipFilePath = "C:/path/to/zipfile.zip";
ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(zipFilePath));
```
2.2 遍历压缩包中的文件,逐个解压到指定目录。
```java
String outputFolder = "C:/path/to/output/";
ZipEntry zipEntry = zipInputStream.getNextEntry();
while (zipEntry != null) {
String filePath = outputFolder + File.separator + zipEntry.getName();
File file = new File(filePath);

if (zipEntry.isDirectory()) {
file.mkdirs();
} else {
FileOutputStream fileOutputStream = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int length;
while ((length = zipInputStream.read(buffer)) > 0) {
fileOutputStream.write(buffer, 0, length);
}
fileOutputStream.close();
}

zipEntry = zipInputStream.getNextEntry();
}
```
2.3 关闭ZipInputStream对象,完成解压。
```java
zipInputStream.close();
```

以上就是实现一个压缩包工具类的基本步骤,通过使用ZipOutputStream和ZipEntry类实现文件的压缩,以及使用ZipInputStream和ZipEntry类实现文件的解压缩。需要注意的是在处理文件IO操作时要及时关闭输入输出流,以避免资源泄漏。