java压缩image图片并解压
时间: 2023-08-05 07:27:55 浏览: 168
Java中可以使用`java.util.zip`包中的`ZipOutputStream`和`ZipEntry`类来实现图片的压缩和解压缩,下面是一个简单的示例代码:
### 压缩图片
```java
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ImageZip {
public static void main(String[] args) {
String srcFile = "src.jpg";
String zipFile = "src.zip";
try {
// 创建ZipOutputStream对象
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFile));
// 创建文件输入流对象
FileInputStream in = new FileInputStream(srcFile);
// 创建ZipEntry对象
ZipEntry entry = new ZipEntry(srcFile);
// 将ZipEntry对象加入到ZipOutputStream对象中
out.putNextEntry(entry);
// 创建缓冲区
byte[] buffer = new byte[1024];
int len;
// 读取文件内容,并写入ZipOutputStream对象中
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
// 关闭文件输入流
in.close();
// 关闭ZipOutputStream对象
out.close();
System.out.println("压缩成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
### 解压图片
```java
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class ImageUnzip {
public static void main(String[] args) {
String zipFile = "src.zip";
String destFile = "src.jpg";
try {
// 创建ZipInputStream对象
ZipInputStream in = new ZipInputStream(new FileInputStream(zipFile));
// 获取ZipEntry对象
ZipEntry entry = in.getNextEntry();
// 创建文件输出流对象
FileOutputStream out = new FileOutputStream(destFile);
// 创建缓冲区
byte[] buffer = new byte[1024];
int len;
// 将ZipInputStream中的数据读取到文件输出流中
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
// 关闭文件输出流
out.close();
// 关闭ZipInputStream对象
in.close();
System.out.println("解压成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
需要注意的是,上述示例代码仅适用于压缩和解压单个图片文件。如果需要处理多个文件或文件夹,需要进行相应的修改。
阅读全文