Java复制、移动和删除文件

复制文件:

Files.copy(fromPath,toPath);

例如:

Files.copy(Paths.get("E:\\A.txt"), Paths.get("F:\\A.txt"));// 将E:\\A.txt复制到F:\\A.txt

这是Java 的API(注意:没有copy(String,String);的方法的!):

Modifier and TypeMethodDescription
static longcopy(InputStream in, Path target, CopyOption... options)Copies all bytes from an input stream to a file.
static longcopy(Path source, OutputStream out)Copies all bytes from a file to an output stream.
static Pathcopy(Path source, Path target, CopyOption... options)Copy a file to a target file.

移动文件(复制并删除源文件):

Files.move(fromPath,toPath);

例如:

Files.move(Paths.get("E:\\A.txt"), Paths.get("F:\\A.txt"));//将E:\\A.txt移动到F:\\A.txt

如果目标路径已经存在,复制或移动将失败,抛出异常java.nio.file.FileAlreadyExistsException。

覆盖已有的目标路径,使用StandardCopyOption.REPLACE_EXISTING;例如:

Files.move(Paths.get("E:\\A.txt"), Paths.get("F:\\A.txt"), StandardCopyOption.REPLACE_EXISTING);

复制所有的文件属性,使用StandardCopyOption.COPY_ATTRIBUTES。

删除文件:

Files.delete(path);

例如:

Files.delete(Paths.get("E:\\A.txt"));//删除E:\\A.txt

如果删除文件不存在,会抛出异常java.nio.file.NoSuchFileException。因此,可以使用deleteIfExists(path)方法:

boolean deleted = Files.deleteIfExists(path);