如何将文件复制到java 8中的另一个目录?

Jay*_*ith 2 java nio

我想将文件从一个包复制到另一个包.

我尝试了Files.copy方法,但它用复制的文件替换了我的文件夹.

public static void main(String[] args) throws IOException {

    InputStream in = CopyFileToDirectoryTest.class.getClassLoader()
            .getResourceAsStream("com/stackoverflow/main/Movie.class");

    Path path = Paths.get("D://folder");

    long copy = Files.copy(in, path,StandardCopyOption.REPLACE_EXISTING);
    System.out.println(copy);

}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为它删除文件夹并创建文件夹名称的文件.

有没有办法在Java 8或我应该使用apache.commons.io?

Joo*_*gen 7

Files.copy 需要目标文件的名称.

Path targetFilePath = Paths.get("D:/folder/Movie.class");
Run Code Online (Sandbox Code Playgroud)

这确实需要比传统的"如果目标是目录,将文件复制到其中"更多一点.另一方面,这是一个非常有用的要求:InputStream不再具有名称.

  • @JaySmith:http://stackoverflow.com/questions/15713119/java-nio-file-path-for-a-classpath-resource (2认同)