java 压缩gz_如何在Java中将.zip压缩为.gz?
我認為您可以為zip創建一個臨時文件,將其添加到gzip,然后刪除創建的zip.下面的代碼示例應該可以幫助您.
public void ZIPandGZIP(String fileName, OutputStream os, String header) throws FileNotFoundException {
byte[] buffer = new byte[1024];
FileInputStream fis = null;
FileOutputStream fos = null;
ZipOutputStream zos = null;
File tempZipFile = File.createTempFile(fileName, ".zip")
try {
fos = new FileOutputStream(tempZipFile);
zos = new ZipOutputStream(fos);
ZipEntry ze = new ZipEntry(fileName);
zos.putNextEntry(ze);
fis = new FileInputStream(fileName);
int len;
while ((len = fis.read(buffer)) > 0) {
zos.write(buffer, 0, len);
}
zos.closeEntry();
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (fis != null) {
fis.close();
}
if (zos != null) {
zos.close();
}
if (fos != null) {
fos.close();
}
}
addGzipFileToStream(tempZipFile, os, header);
}
private void addGzipFileToStream(File zipFile, OutputStream os, String header) throws FileNotFoundException {
byte[] buffer = new byte[1024];
DataOutputStream dos = null;
GZIPOutputStream gzos = null;
FileInputStream inputStream = null;
try {
dos = new DataOutputStream(os);
dos.writeBytes(header);
gzos = new GZIPOutputStream(os);
inputStream = new FileInputStream(zipFile);
int len;
while ((len = inputStream.read(buffer)) > 0) {
gzos.write(buffer, 0, len);
}
gzos.finish();
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (inputStream != null) {
inputStream.close();
}
if (gzos != null) {
gzos.close();
}
if (dos != null) {
dos.close();
}
zipFile.delete();
}
}
希望能幫助到你.
總結
以上是生活随笔為你收集整理的java 压缩gz_如何在Java中将.zip压缩为.gz?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器未对目录服务请求作出响应,ArcG
- 下一篇: java爬虫自动识别验证码_简单Java