其實無非就是將你指定的檔案位址依照遞歸的方式,一個個壓縮啊。
out.putNextEntry(new ZipEntry(XXX)); 這裡是傳入你要壓縮的內容,
例如:如果是資料夾,則out.putNextEntry(new ZipEntry(資料夾名稱 "/"));
如果是資料夾中內容,則:out.putNextEntry(new ZipEntry(資料夾名稱 "/" 資料夾名稱));
其實你上面的程式還有點問題,並不能達到你預期的要,我幫你修改下吧:
for迴圈中應該要修改為這個:
for (int i = 0; i
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream("d:\\test.zip"));
String test1="test1";
String test2="test2";
byte[] bytes1 = test1.getBytes("UTF-8");
byte[] bytes2 = test2.getBytes("UTF-8");
ZipEntry z1 = new ZipEntry("test1.txt");
zos.putNextEntry(z1);
zos.write(bytes1);
ZipEntry z2 = new ZipEntry("text2.txt");
zos.putNextEntry(z2);
zos.write(bytes2);
zos.closeEntry();
zos.close();
//流可以自己取得
//java預設的套件不支援中文(亂碼)
//使用apache的ZipOutputStream進行zip壓縮
是否可以解決您的問題?
以上是一個用JAVA寫的檔案壓縮程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!