code: public static void copyURLToFile(final URL source, final File destination) throws UncheckedIOException {
          InputStream is = null;
          try {
              is = source.openStream();
  
              write(destination, is);
          } catch (IOException e) {
              throw new UncheckedIOException(e);
          } finally {
              close(is);
          }
      }
docs: Copies bytes from the URL <code>source</code> to a file
  <code>destination</code>. The directories up to <code>destination</code>
  will be created if they don't already exist. <code>destination</code>
  will be overwritten if it already exists.
  <p>
  Warning: this method does not set a connection or read timeout and thus
  might block forever. Use {@link #copyURLToFile(URL, File, int, int)}
  with reasonable timeouts to prevent this.
  
  @param source  the <code>URL</code> to copy bytes from, must not be {@code null}
  @param destination  the non-directory <code>File</code> to write bytes to
  (possibly overwriting), must not be {@code null}
  @throws UncheckedIOException if <code>source</code> URL cannot be opened
  @throws UncheckedIOException if <code>destination</code> is a directory
  @throws UncheckedIOException if <code>destination</code> cannot be written
  @throws UncheckedIOException if <code>destination</code> needs creating but can't be
  @throws UncheckedIOException if an IO error occurs during copying