exception - IndexOutOfBoundsException when reading from a ZipInputStream Java -
i'm trying implement algorithm description previous question had here in stackoverflow:
suppressing or not allowing access time modified java
so implemented as
byte[] digest = new byte[this.buffer]; messagedigest md5; try { md5 = messagedigest.getinstance("md5"); while(entry.getnextentry() != null){ zipentry current = entry.getnextentry(); if(current.isdirectory()){ digest = this.encodeutf8(current.getname()); md5.update(digest); } else{ entry.read(digest, 0, this.buffer); md5.update(digest); } } digest = md5.digest(); entry.close(); } catch (nosuchalgorithmexception e) { // todo auto-generated catch block e.printstacktrace(); }
however, i'm getting exception in thread "main" java.lang.indexoutofboundsexception in else statement. know why? also, please tell me if algorithm correctly implemented?
you're calling getnextentry()
twice, instead of once:
while (entry.getnextentry() != null) { // goes next entry zipentry current = entry.getnextentry(); // goes next entry
use instead:
zipentry current; while ((current = entry.getnextentry()) != null) { // use current }
or
for (zipentry current = entry.getnextentry(); current != null; current = entry.getnextentry()) { // use current }
Comments
Post a Comment