2016-02-28 157 views
1

程序:Files.copy(SRC,DST)拋出NoSuchFileException

import java.io.IOException;  
    import java.nio.file.*;  
    import java.io.*; 

    public class Copier { 
     public static void main(String[] args) 
     { 
      try 
      { 

       File src = new File("C:\\Users\\k\\Desktop\\sandeep.txt"); 

       File dstn = new File("C:\\Users\\k\\Desktop\\sandeep1.txt"); 

       Files.copy(src.toPath(), dstn.toPath()); 

      } 
      catch(IOException e) { 
       System.out.println(e.toString()); 
      } 
     } 

    } 

在我的桌面,sandeep.txt存在而sandeep1.txt沒有。我有一些文字寫在sandeep.txt,我想複製到sandeep1.txt(創建後)。但是,當我嘗試這樣做時,它拋出異常:java.nio.file.NoSuchFileException: C:\Users\k\Desktop\sandeep1.txt

此問題已被某人問過,但仍未回覆,因此我再次詢問。提前感謝你!

編輯:在一開始,我試過Files.copy(src,dstn)但它沒有工作,所以我試圖Files.copy(dstn,src),它仍然無法正常工作。在這裏張貼時,我忘了改回它。現在我已經糾正它。請再看一遍。

求助:我在創建文件時犯了一個錯誤。我創建了一個新的文本文件並將其命名爲sandeep.txt。這個文件有效地命名爲sandeep.txt.txt。我很尷尬,我犯了這個錯誤,但我會記得很久。謝謝你給我寶貴的時間。

+0

而不是做file.toPath(),使用Paths.get()的... – fge

+2

'Files.copy(SRC,DTN)' - 這是源, DEST。 – Mat

+1

@SKG,我們應該更加努力去了解標準庫。在這種特殊情況下要記住的一個技巧就是把它比作Unix'cp'命令。另一個非常好的做法是爲你的變量命名,以便記錄你的意圖(例如使用'src'和'dest'而不是'p1'和'p2')。 –

回答

0

janos是正確的,你有錯誤的訂單。但是,您可以通過幾個選項提供第三個參數java.nio.file.CopyOptions,缺省值可以在java.nio.file.StandardCopyOption中找到。

常見的情況是這樣的:

Files.copy(p1.toPath(), p2.toPath(), StandardCopyOption.REPLACE_EXISTING); 
+0

你好,pczeus,我只是打錯輸入時問。現在我已經在這裏正確編輯了它。它似乎沒有任何工作方式。我嘗試了第三個參數,但仍然沒有運氣。 – SKG

+0

嘗試改變你的路徑,讓'\\'走另一條路。只需使用'/'。例如:「C:/Users/k/Desktop/sandeep.txt」 – pczeus

+0

我在本地運行,只要src文件存在,它就可以工作。 – pczeus

相關問題