GZip 압축 풀기 도구 클래스
package test;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import org.apache.log4j.Logger;
public class GZipUtil {
private static Logger log = Logger.getLogger(GZipUtil.class);
public GZipUtil() {
}
/**
* GZip
*
*/
private byte[] gzipFile(String src) {
String fileName = "e:\\xml\\1.txt";
// String fileName = src;
//
FileInputStream zipin;
ByteArrayOutputStream bin = new ByteArrayOutputStream();
try {
zipin = new FileInputStream(fileName);
fileName = "e:\\xml\\1.txt.zip";
File zip = new File(fileName);
GZIPOutputStream zipout = new GZIPOutputStream(
new FileOutputStream(zip));
byte[] buffer = new byte[4096];
int bytes_read;
// 1.txt buffer
while ((bytes_read = zipin.read(buffer)) != -1) {
// buffer , 1.txt.zip
zipout.write(buffer, 0, bytes_read);
}
zipout.flush();
zipout.finish();
//
FileInputStream fos = new FileInputStream(new File(fileName));
buffer = new byte[4096];
int flag = 0;
while ((flag = fos.read(buffer)) != -1) {
// 1.txt.zip bin
bin.write(buffer, 0, flag);
}
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return bin.toByteArray();
}
/**
* GZip
* zipFileName xmlFileName
*
*/
private void unGzipFile(byte[] in,String name) {
String zipFileName = "e:\\xml\\" + name + ".txt.zip";
String xmlFileName = "e:\\xml\\" + name + ".txt";
// String zipFileName1 = "e:\\xml\\" + name + "_1.txt.zip";
// String xmlFileName1 = "e:\\xml\\" + name + "_1.txt";
//
byte[] b = in;
int flag = 0;
if (b != null) {
// ZIP
ByteArrayInputStream bin = new ByteArrayInputStream(b);
FileOutputStream fos;
try {
fos = new FileOutputStream(new File(zipFileName));
byte[] buffer = new byte[4096];
while ((flag = bin.read(buffer)) != -1) {
fos.write(buffer, 0, flag);
}
fos.close();
// zip
FileOutputStream foszip = new FileOutputStream(
new File(xmlFileName));
GZIPInputStream zin = new GZIPInputStream(new FileInputStream(
new File(zipFileName)));
buffer = new byte[4096];
flag = 0;
while ((flag = zin.read(buffer)) != -1) {
foszip.write(buffer, 0, flag);
}
foszip.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.