code: public void copyToLocalFile(Path src, Path dst, boolean copyCrc)
      throws IOException {
      if (!fs.isDirectory(src)) { // source is a file
        fs.copyToLocalFile(src, dst);
        FileSystem localFs = getLocal(getConf()).getRawFileSystem();
        if (localFs.isDirectory(dst)) {
          dst = new Path(dst, src.getName());
        }
        dst = getChecksumFile(dst);
        if (localFs.exists(dst)) { //remove old local checksum file
          localFs.delete(dst, true);
        }
        Path checksumFile = getChecksumFile(src);
        if (copyCrc && fs.exists(checksumFile)) { //copy checksum file
          fs.copyToLocalFile(checksumFile, dst);
        }
      } else {
        FileStatus[] srcs = listStatus(src);
        for (FileStatus srcFile : srcs) {
          copyToLocalFile(srcFile.getPath(), 
                          new Path(dst, srcFile.getPath().getName()), copyCrc);
        }
      }
    }
docs: The src file is under FS, and the dst is on the local disk.
  Copy it from FS control to the local dst name.
  If src and dst are directories, the copyCrc parameter
  determines whether to copy CRC files.