0

내 문제는 디스크에 기록해서는 안되는 ini 파일을 만드는 것이지만이 '파일'을 어떤 방식으로 압축해야하며이 파일을 작성해야합니다. 압축 된 파일에서 플랫하지 않은 폴더 내에서 예를 들어 folder/file.ini.ByteStream에서 ZIP/TGZ 보관 파일 만들기

원래 생각한대로이 파일을 ByteArrayOutputStream에만 작성하면 파일이 디스크에 기록되지 않는다는 요구 사항을 충족시킬 수있었습니다.

그러나 파일 압축에 관해서는 파일 이름 만 제공하더라도 디스크에 있어야한다고 생각합니다.

내가이 방법을 사용할 수 있습니까?

답변

1

예,이 같은 ZipOutputStream 뭔가를 사용할 수 있습니다 -

ZipOutputStream zs = null; 
try { 
    zs = new ZipOutputStream(os); // Where os is your ByteArrayOutputStream 
    ZipEntry e = new ZipEntry(fileName); // fileName is your file (in the zip) 
    zs.putNextEntry(e); 
    zs.write(theContent); // theContent is the the file content. 
} finally { 
    if (zs != null) { 
    zs.close(); 
    } 
} 
+0

덕분에 빠른 응답을! 아마도이 방법을 사용하여 압축 된 출력의 디렉토리를 만들 수도 있습니다. –

+0

@MikeWells 다음 번에 ** 귀하의 게시물에 귀하의 전체 질문을 포함 시키십시오 **. 예, 폴더에 파일을 저장할 수 있습니다. 예를 들어'zs.putNextEntry (new ZipEntry ("aFolder/myFile.txt")); –