发布于2025-01-28 阅读(0)
扫一扫,手机访问
其实无非就是将你指定的文件地址根据递归的方式,一个个压缩啊。
out.putNextEntry(new ZipEntry(XXX)); 这里就是传入你要压缩的内容,
例如:如果是文件夹,则out.putNextEntry(new ZipEntry(文件夹名+"/"));
如果是文件夹中内容,则:out.putNextEntry(new ZipEntry(文件夹名+"/"+文件夹名));
其实你上面的程序还有点问题,并不能达到你预期的要,我帮你修改下吧:
for循环中应该修改为这个:
for (int i = 0; i < fl.length; i++) { // 循环遍历数组中文件 zip(out, fl[i], base + fl[i].getName()); }
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压缩
是否可以解决您的问题?
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店