其实无非就是将你指定的文件地址根据递归的方式,一个个压缩啊。
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中文网其他相关文章!