code: public KeePassFile openDatabase(String password, File keyFile) {
          if (password == null) {
              throw new IllegalArgumentException(MSG_EMPTY_MASTER_KEY);
          }
          if (keyFile == null) {
              throw new IllegalArgumentException("You must provide a valid KeePass keyfile.");
          }
  
          InputStream inputStream = null;
  
          try {
              inputStream = new FileInputStream(keyFile);
              return openDatabase(password, inputStream);
          } catch (FileNotFoundException e) {
              throw new IllegalArgumentException("The KeePass keyfile could not be found. You must provide a valid KeePass keyfile.", e);
          } finally {
              if (inputStream != null) {
                  try {
                      inputStream.close();
                  } catch (IOException e) {
                      // Ignore
                  }
              }
          }
      }
docs: Opens a KeePass database with the given password and keyfile and returns
  the KeePassFile for further processing.
  <p>
  If the database cannot be decrypted with the provided password and
  keyfile an exception will be thrown.
  
  @param password
  the password to open the database
  @param keyFile
  the password to open the database
  @return a KeePassFile
  @see KeePassFile