byte - java.util.zip.ZipException when adding a ZipEntry to a ZipOutputStream without a ZipInputStream -


i attempting add zipentry zipoutputstream running problems when trying write bytes.

i got zipentry hashmap maps file names zipentries. chose method because dealing large zipinputstream , want able access contents easier looping through inputstream , looking file , getting zipentry.

this causes problem when try write bytes after added entry. solutions have found far have needed zipinputstream.

here code:

zipentry ze = entryhash.get(pathtostring(path)); zos.putnextentry(ze); zos.write(new byte[(int)ze.getsize()]); // problem here zos.closeentry(); 

the error getting is:

java.util.zip.zipexception: invalid entry compressed size (expected 389 got 12 bytes)     @ java.util.zip.zipoutputstream.closeentry(zipoutputstream.java:248) 

how can fix exception?

you need create new zipentry add zipoutputstream. code doesn't make sense. you're not copying old zipentry output technique, you're writing array of 0 bytes of same size. have read old zipentry , write new output. technique of map of zipentries isn't going work either. zip file must processed sequentially.


Comments

Popular posts from this blog

php - regexp cyrillic filename not matches -

c# - OpenXML hanging while writing elements -

sql - Select Query has unexpected multiple records (MS Access) -