docs: public static void copy(File source, File target) throws IOException {
          if (!source.exists()) {
              throw new FileNotFoundException("Source file not found:" + source.getAbsolutePath());
          }
  
          if (!target.exists() && !target.getParentFile().exists() && !target.getParentFile().mkdirs()) {
              throw new IOException("Can't create target directory:" + target.getParentFile().getAbsolutePath());
          }
          FileInputStream is = new FileInputStream(source);
          FileOutputStream os = new FileOutputStream(target);
          IOHelper.copy(is, os);
      }