code: public String calculate( File file )
          throws DigesterException
      {
          CheckedInputStream cis;
          try
          {
              cis = new CheckedInputStream( new FileInputStream( file ), new CRC32() );
          }
          catch ( FileNotFoundException e )
          {
              throw new DigesterException( "Unable to read " + file.getPath() + ": " + e.getMessage() );
          }
  
          byte[] buf = new byte[STREAMING_BUFFER_SIZE];
          try
          {
              while ( cis.read( buf ) >= 0 )
              {
                  continue;
              }
          }
          catch ( IOException e )
          {
              throw new DigesterException(
                  "Unable to calculate the " + getAlgorithm() + " hashcode for " + file.getPath() + ": "
                      + e.getMessage() );
          }
  
          return Long.toString( cis.getChecksum().getValue() );
      }
docs: {@inheritDoc}