[英]java.io.FileNotFoundException:
我正在尝试使用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复制简单文件。
怀疑部分或全部dest
输出路径可能不存在。 如果是这种情况,您可以使用File.mkdirs来构建路径。
此外,不是从字符串构建文件,而是建议允许File处理所有这些,例如:
File inputFile = new File(source, filename);
File outputFile = new File(dest, filename);
使用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)
您可以使用commons-io中的FileUtils: http : //commons.apache.org/io/apidocs/org/apache/commons/io/FileUtils.html
或Java 7中的文件: http : //docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html
java.io.FileNotFoundException表示找不到某个文件,请检查以下值:
如果文件不存在,文件系统将尝试创建该文件。 如果创建失败,Java将抛出FileNotFountException
。
也许你需要添加
File outputFile = new File(dest+""+filename);
if(!outputFile.exist())outputFile.createNewFile();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.