code: @Nonnull
    public ISuccessIndicator write (@Nonnull final File aDstFile) throws FileUploadException
    {
      ValueEnforcer.notNull (aDstFile, "DstFile");
  
      if (isInMemory ())
        return SimpleFileIO.writeFile (aDstFile, directGet ());
  
      final File aOutputFile = getStoreLocation ();
      if (aOutputFile != null)
      {
        // Save the length of the file
        m_nSize = aOutputFile.length ();
  
        /*
         * The uploaded file is being stored on disk in a temporary location so
         * move it to the desired file.
         */
        if (FileOperations.renameFile (aOutputFile, aDstFile).isSuccess ())
          return ESuccess.SUCCESS;
  
        // Copying needed
        return FileOperations.copyFile (aOutputFile, aDstFile);
      }
  
      // For whatever reason we cannot write the file to disk.
      throw new FileUploadException ("Cannot write uploaded file to: " + aDstFile.getAbsolutePath ());
    }
docs: A convenience method to write an uploaded item to disk. The client code is
  not concerned with whether or not the item is stored in memory, or on disk
  in a temporary location. They just want to write the uploaded item to a
  file.
  <p>
  This implementation first attempts to rename the uploaded item to the
  specified destination file, if the item was originally written to disk.
  Otherwise, the data will be copied to the specified file.
  <p>
  This method is only guaranteed to work <em>once</em>, the first time it is
  invoked for a particular item. This is because, in the event that the
  method renames a temporary file, that file will no longer be available to
  copy or rename again at a later time.
  
  @param aDstFile
  The <code>File</code> into which the uploaded item should be stored.
  @throws FileUploadException
  if an error occurs.