java - How to read and calculate hash of file on the internet -


i have url of file on internet. need calculate sha1 hash, , read file each line. know how this, read file twice isn't solution.

how can more effectively?

here code:

url url = new url(url); urlconnection urlconnection = url.openconnection(); urlconnection.setconnecttimeout(1000); urlconnection.setreadtimeout(1000); logger.error(urlconnection.getcontent() + " "); inputstream = urlconnection.getinputstream();   // first reading of file is:  int i; file file = new file("nameoffile"); bufferedinputstream bis = new bufferedinputstream(is); bufferedoutputstream bos =             new bufferedoutputstream(new fileoutputstream(file.getname())); while ((i = bis.read()) != -1) {     bos.write(i); } bos.flush(); bis.close();    sha1(file);  // second reading of file is:  bufferedreader reader = new bufferedreader(new inputstreamreader(is)); string line;  while ((line = reader.readline()) != null) {    // }  protected byte[] sha1(final file file) throws exception {     if (file == null || !file.exists()) {         return null;     }     final messagedigest messagedigest = messagedigest.getinstance(sha1);      inputstream = new bufferedinputstream(new fileinputstream(file));     try {         final byte[] buffer = new byte[1024];         (int read = 0; (read = is.read(buffer)) != -1;) {             messagedigest.update(buffer, 0, read);         }     } {         ioutils.closequietly(is);     }     return messagedigest.digest(); } 

if pass through digestinputstream, it'll messagedigest , still usable inputstream.

digestinputstream dis = new digestinputstream(is,   messagedigest.getinstance(sha1)); bufferedinputstream bis = new bufferedinputstream(dis); bufferedoutputstream bos = new bufferedoutputstream(   new fileoutputstream(file.getname())); while ((i = bis.read()) != -1) {    bos.write(i); } bos.close(); return dis.getmessagedigest().digest(); 

Comments

Popular posts from this blog

How to mention the localhost in android -

php - Calling a template part from a post -