[英]Java.util.zip replace a single zip file
我有一個現有的zipfile“main.zip”。 我想替換它中的一個文件,“比如main.zip/foo。”
http://docs.oracle.com/javase/7/docs/api/java/util/zip/ZipOutputStream.html
但是,這並不是我想要的,因為它創建了一個新的Zip文件 - 因此我還必須添加main.zip中的所有現有條目。
有沒有辦法在Java中“替換”Zip檔案中的單個文件? (無需重新創建新的zip存檔並復制所有舊數據)。
我覺得你很幸運。
使用java 7 java.nio.file.FileSystem
和Files.copy()
我設法在一瞬間將文本文件插入到一個大型zip文件中。
public static void main(String[] argv) {
Path myFilePath = Paths.get("c:/dump2/mytextfile.txt");
Path zipFilePath = Paths.get("c:/dump2/myarchive.zip");
try( FileSystem fs = FileSystems.newFileSystem(zipFilePath, null) ){
Path fileInsideZipPath = fs.getPath("/mytextfile.txt");
Files.copy(myFilePath, fileInsideZipPath);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
它使用ZipFileSystem Provider“安裝”zip。 然后你可以復制你想要的任何東西。 這些變化似乎發生在fs.close()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.