我把文件压缩后好像文件的内容与原来不一致,有些错位。
什么原因呢????贴:源代码
/**
* compress a directory to a zipfile with a name of directory name
* @param direct File
* @param zipFile File
* @throws IOException
*/
public void ZIPFiles(File direct, File zipFile) throws
IOException {
if (direct.isDirectory()) {
FileOutputStream f = new FileOutputStream(zipFile);
CheckedOutputStream csum = new CheckedOutputStream(f, new Adler32());
ZipOutputStream zos = new ZipOutputStream(csum);
BufferedOutputStream out = new BufferedOutputStream(zos);
zos.setComment("java zipping for nimble [email protected]"); File[] files = direct.listFiles();
int filePieces = files.length;
if (filePieces > 0) { for (int i = 0; i < filePieces; i++) {
System.out.println("Write File" + files[i].getName() + "...");
BufferedReader in = new BufferedReader(new FileReader(files[i]));
zos.putNextEntry(new ZipEntry(files[i].getName()));
int c;
while ( (c = in.read()) != -1)
out.write(c);
in.close(); } }
out.close();
System.out.println("Checksum:" + csum.getChecksum().getValue()); }
else {
System.out.println("direct is not a valid directory");
} }
//test ZIPFiles(File direct, File zipFile)
File zipFile = new File("E:\\jb_test\\nimbleZip\\src","controlCls.zip");
File direct = new File("E:\\jb_test\\nimbleZip\\src\\controlCls");
demo.ZIPFiles(direct,zipFile);
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货