java.io.FileNotFoundException:

时间:2012-08-10 14:15:56

标签: java java-io

我正在尝试使用Java将单个文件从源复制到目标但是收到以下错误消息。

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复制简单文件。

6 个答案:

答案 0 :(得分:2)

怀疑部分或全部dest输出路径可能不存在。如果是这种情况,您可以使用File.mkdirs来构建路径。

此外,不是从字符串构建文件,而是建议允许File处理所有这些,例如:

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

答案 1 :(得分: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 :(得分:0)

答案 3 :(得分:0)

java.io.FileNotFoundException表示找不到某个文件,请检查值:

  • dest
  • 文件名
  • 源+ “” +文件名
  • DEST + “” +文件名

答案 4 :(得分:0)

如果文件不存在,文件系统将尝试创建该文件。如果创建失败,Java将抛出FileNotFountException

答案 5 :(得分:-1)

也许你需要添加

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