JAVA实现文件压缩与解压
时间: 2023-12-10 11:37:59 浏览: 29
Java提供了ZipOutputStream类和ZipInputStream类,用于压缩和解压缩文件。
压缩文件:
```java
import java.io.*;
import java.util.zip.*;
public class ZipFile {
public static void main(String[] args) throws Exception {
// 创建压缩文件输出流
FileOutputStream fos = new FileOutputStream("test.zip");
ZipOutputStream zos = new ZipOutputStream(fos);
// 创建要压缩的文件输入流
FileInputStream fis = new FileInputStream("test.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
// 开始写入压缩文件
zos.putNextEntry(new ZipEntry("test.txt"));
int len;
byte[] buffer = new byte[1024];
while ((len = bis.read(buffer)) > 0) {
zos.write(buffer, 0, len);
}
// 关闭流
bis.close();
zos.closeEntry();
zos.close();
fos.close();
}
}
```
解压文件:
```java
import java.io.*;
import java.util.zip.*;
public class UnzipFile {
public static void main(String[] args) throws Exception {
// 创建压缩文件输入流
FileInputStream fis = new FileInputStream("test.zip");
ZipInputStream zis = new ZipInputStream(fis);
// 开始解压缩文件
ZipEntry zipEntry = zis.getNextEntry();
while (zipEntry != null) {
String fileName = zipEntry.getName();
File file = new File(fileName);
FileOutputStream fos = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fos);
int len;
byte[] buffer = new byte[1024];
while ((len = zis.read(buffer)) > 0) {
bos.write(buffer, 0, len);
}
// 关闭流
bos.close();
fos.close();
zipEntry = zis.getNextEntry();
}
// 关闭流
zis.closeEntry();
zis.close();
fis.close();
}
}
```
以上是基本的压缩和解压缩文件的实现方法,也可以使用更高级的类库,如Apache Commons Compress。