2012-08-10 87 views
0

我在嘗試使用Java將單個文件從源複製到目標,但獲取以下錯誤消息。java.io.FileNotFoundException:

java.io.FileNotFoundException:以下是方法

public void copy_single(String source,String dest,String filename) 
{ 
    try 
    { System.out.println(source + "" + filename); 
    System.out.println(dest + "" + filename); 
    File inputFile = new File(source+""+filename); 
    File outputFile = new File(dest+""+filename); 
    Process proc0 = Runtime.getRuntime().exec("chmod -R 777 "+inputFile+""); 
    proc0.waitFor(); 
    Process proc1 = Runtime.getRuntime().exec("chmod -R 777 "+outputFile+""); 
    proc1.waitFor(); 
    FileReader in = new FileReader(inputFile); 
    FileWriter out = new FileWriter(outputFile); 
    int c; 
    while ((c = in.read()) != -1) 
     out.write(c); 
    in.close(); 
    out.close(); 
    } catch(Exception e) { 
    e.printStackTrace(); 
    System.out.println("Error: Operation failed!"); 
    } 
} 

輸出: -

/home/root/Tool/AAputDelta.sh 
/home/root/Desktop/Sqa/BaseLine/Engine/AAputDelta.sh 
java.io.FileNotFoundException: /home/root/Desktop/Sqa/BaseLine/Engine/AAputDelta.sh (No such file or directory) 
at java.io.FileOutputStream.open(Native Method) 
at java.io.FileOutputStream.<init>(FileOutputStream.java:194) 
at java.io.FileOutputStream.<init>(FileOutputStream.java:145) 

如何使用Java的簡單複製文件。

+0

你打印出來並看到source +「」+ fileName返回文件的完整路徑嗎? – kosa 2012-08-10 14:17:04

+1

Plese告訴我們拋出異常的源代碼行。 – BetaRide 2012-08-10 14:18:26

+0

@BetaRide:FileWriter out = new FileWriter(outputFile);拋出異常。 – 2012-08-10 14:22:11

回答

1

使用apache commons FileUtils。所有這些應該足以

FileUtils.copyFile(File srcFile, File destFile) 
FileUtils.copyFile(File srcFile, File destFile, boolean preserveFileDate) 
FileUtils.copyFileToDirectory(File srcFile, File destDir) 
FileUtils.copyFileToDirectory(File srcFile, File destDir, boolean preserveFileDate) 
2

懷疑某些或全部dest輸出路徑的可能不存在。如果是這種情況,您可以使用File.mkdirs來構建路徑。

此外,而不是建立從字符串的文件,建議允許File處理這一切,如:

File inputFile = new File(source, filename); 
File outputFile = new File(dest, filename); 
0

java.io.FileNotFoundException表示某個文件未找到,因此請檢查這些值:

  • DEST
  • 源+ 「」 +文件名
  • DEST + 「」 +文件名
-1

也許你需要添加

File outputFile = new File(dest+""+filename); 
if(!outputFile.exist())outputFile.createNewFile(); 
+0

如果文件不能由新的FileOutputStream()創建,這也不會起作用。沒有答案。 – EJP 2012-08-14 23:24:45

0

如果文件不存在,文件系統將t ry創建文件。如果創建失敗,Java將拋出FileNotFountException