The URL should be enough to find the file and open an input stream in the `generateHash()` method. I'd suggest removing the `File` parameter from the constructor and member from the class; it's just extra memory that is not needed, and the `File` and `URL` values could actually conflict.