2012-08-10 48 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