2017-05-14 31 views
0

我想將文件從一個包複製到另一個包。如何將文件複製到java 8中的另一個目錄?

我試過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?

回答

3

Files.copy需要目標文件的名稱。

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

這的確需要比多一點傳統「如果目標是一個目錄,將文件複製到它。」另一方面,一個非常有用的要求是:InputStream不再有名字。

+0

謝謝,但如何將classpath資源('com/stackoverflow/json/Movie.class')轉換爲'Path'對象? –

+0

因爲我需要將Movie.class從一個包複製到另一個項目中。 –

+2

@JaySmith:http://stackoverflow.com/questions/15713119/java-nio-file-path-for-a-classpath-resource –

相關問題