안녕하세요 오늘은 압축파일이 있을때 새로운 파일을 압축파일에 추가해보도록 하겠습니다
😎 기존 압축파일 내 image1.png, image2.png, image3.png 파일이 들어가 있는데 압축파일을 제거하지않고 testimage.png를 압축파일에 추가해 보도록 하겠습니다
위 사진과 같이 파일을 셋팅해줍니다
public void addZip(String filePath, List<String> fileNames) throws Exception{
File file = new File(filePath, "testimage.png");
File zipFile = new File(filePath, "압축파일.zip");
byte[] buf = new byte[4096];
File tempFile = null;
tempFile = File.createTempFile(zipFile.getName(), null);
tempFile.delete();
boolean renameOK = zipFile.renameTo(tempFile);
ZipOutputStream out = null;
ZipInputStream zin = null;
InputStream in = null;
try{
out = new ZipOutputStream(new FileOutputStream(zipFile));
zin = new ZipInputStream(new FileInputStream(tempFile));
in = new FileInputStream(file);
ZipEntry entry = zin.getNextEntry();
while(entry != null){
String name = entry.getName();
if(!file.getName().equals(name)){
out.putNextEntry(new ZipEntry(name));
int len;
while((len = zin.read(buf)) > 0){
out.write(buf, 0, len);
}
}
entry = zin.getNextEntry();
}
out.putNextEntry(new ZipEntry(file.getName()));
int len;
while((len = in.read(buf)) > 0){
out.write(buf, 0 , len);
}
}catch(IOException e){
e.printStackTrace();
}finally {
tempFile.delete();
in.close();
zin.close();
out.close();
}
}
압축파일.zip을 풀어준 결과 testimage.png가 정상으로 나오는것을 확인 할 수 있었습니다