0

我的問題的前提是我創建了一個永遠不應該寫入磁盤的ini文件,但是這個'文件'需要以某種方式進行壓縮,另外需要寫入該文件在一個文件夾內,不是在壓縮文件中的文件夾,例如文件夾/ 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」));' –