feat: 외부연계데이타 응답처리 진행
parent
052eb970ab
commit
bebb6ec058
@ -0,0 +1,72 @@
|
|||||||
|
package kr.xit.framework.support.util;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.zip.ZipEntry;
|
||||||
|
import java.util.zip.ZipOutputStream;
|
||||||
|
|
||||||
|
import kr.xit.framework.support.exception.BizRuntimeException;
|
||||||
|
import kr.xit.framework.support.util.constants.MessageKey;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public class FileUtils {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* zip 파일 생성
|
||||||
|
* @param filePath source file path
|
||||||
|
* @param fileNameList source file name list
|
||||||
|
* @param zipFilePath zip file folder
|
||||||
|
* @param zipFileName zip file name
|
||||||
|
*/
|
||||||
|
public void compressZip(final String filePath, final List<String> fileNameList, final String zipFilePath, final String zipFileName) {
|
||||||
|
List<File> fileList = new ArrayList<>();
|
||||||
|
|
||||||
|
fileNameList.forEach(s -> fileList.add(new File(filePath, s)));
|
||||||
|
compressZip(fileList, zipFilePath, zipFileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Zip 파일 생성
|
||||||
|
* @param fileList zip file name list
|
||||||
|
* @param zipFilePath zip file folder
|
||||||
|
* @param zipFileName zip file name
|
||||||
|
*/
|
||||||
|
public void compressZip(final List<File> fileList, final String zipFilePath, final String zipFileName) {
|
||||||
|
File zipFile = new File(zipFilePath, zipFileName);
|
||||||
|
|
||||||
|
byte[] buff = new byte[4096];
|
||||||
|
// 압축파일 생성
|
||||||
|
try(ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile))){
|
||||||
|
|
||||||
|
// 파일 압축
|
||||||
|
fileList.forEach(f -> {
|
||||||
|
try(FileInputStream fis = new FileInputStream(f)){
|
||||||
|
// 압축파일 지정
|
||||||
|
ZipEntry ze = new ZipEntry(f.getName());
|
||||||
|
zos.putNextEntry(ze);
|
||||||
|
|
||||||
|
// 압축 파일에 추가
|
||||||
|
int len;
|
||||||
|
while ((len = fis.read(buff)) > 0) zos.write(buff, 0, len);
|
||||||
|
|
||||||
|
zos.closeEntry();
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
} catch (FileNotFoundException e) {
|
||||||
|
log.error("zip파일 생성 오류::{}", e.getLocalizedMessage());
|
||||||
|
throw BizRuntimeException.create(MessageKey.CUSTOM_MSG, "zip 파일생성 오류[대상파일 미존재]");
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error("zip파일 생성 오류::{}", e.getLocalizedMessage());
|
||||||
|
throw BizRuntimeException.create(MessageKey.CUSTOM_MSG, "zip 파일생성 오류[대상파일 미존재]");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue