【问题标题】:How to copy file into another directory in Java 8?如何将文件复制到 Java 8 中的另一个目录?
【发布时间】:2017-05-14 19:27:34
【问题描述】:

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

我尝试了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);

}

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

Java 8 中有没有办法,或者我应该使用Apache Commons IO

【问题讨论】:

    标签: java nio


    【解决方案1】:

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

    Path targetFilePath = Paths.get("D:/folder/Movie.class");
    

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

    【讨论】:

    • 谢谢,但是如何将类路径资源(com/stackoverflow/json/Movie.class) 转换为Path 对象?
    • 因为我需要将 Movie.class 从一个包复制到同一个项目中的另一个包中。
    • 一个 .class 在其完整的类名中维护其包路径。所以这将无法正常工作。如果你是从 jar 中重新打包类,还有更常规的方法。
    • 感谢链接的帮助,但它引发了新的异常java.nio.file.DirectoryNotEmptyException。意思是com/stackoverflow/json 不为空。
    猜你喜欢
    • 2010-11-11
    • 2012-03-24
    • 2015-05-05
    • 2012-02-15
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    相关资源
    最近更新 更多