您可以使用copy(Path, Path, CopyOption...)方法复制文件或目录 。如果目标文件存在,则复制失败,除非指定了REPLACE_EXISTING选项。
    目录可以复制。但是,目录内的文件不会被复制,因此即使原始目录包含文件,新目录也为空。
    复制符号链接时,将复制链接的目标。如果要复制链接本身而不是复制链接的内容,请指定NOFOLLOW_LINKSREPLACE_EXISTING选项。
    此方法采用varargs参数。支持以下StandardCopyOptionLinkOption枚举:

    • REPLACE_EXISTING–即使目标文件已经存在,也执行复制。如果目标是符号链接,则会复制链接本身(而不是链接的目标)。如果目标是非空目录,则复制将失败,并带有FileAlreadyExistsException异常。
    • COPY_ATTRIBUTES–将与文件关联的文件属性复制到目标文件。支持的确切文件属性取决于文件系统和平台,但last-modified-time跨平台受支持,并被复制到目标文件。
    • NOFOLLOW_LINKS–表示不应遵循符号链接。如果要复制的文件是符号链接,则复制该链接(而不是链接的目标)。

    如果您不熟悉enums,请参见 枚举类型
    下面显示了如何使用copy方法:

    1. import static java.nio.file.StandardCopyOption.*;
    2. ...
    3. Files.copy(source, target, REPLACE_EXISTING);

    除了文件复制外,Files类还定义了可用于在文件和流之间复制的方法。copy(InputStream, Path, CopyOptions...)方法可用于将所有字节从输入流复制到文件。copy(Path, OutputStream)方法可用于将所有字节从文件复制到输出流。
    Copy示例使用copyFiles.walkFileTree方法来支持递归副本。有关更多信息,请参见 遍历文件树