我是 Java 编程的真正初学者,所以我希望我没有浪费任何人的时间。我尽力研究这个问题,但找不到解决方案。
我正在关注 Lynda 视频系列“Java Essential Training”,到目前为止效果非常好。我目前正在学习如何将文本文件的内容复制到新的文本文件中。不过,视频展示了另一种方法,即从 Apache commons 下载 commons IO 并将 .jar 文件添加到项目中。
在视频中,jar 文件已添加到构建路径。我的 Eclipse 版本似乎会在弹出“引用库”时自动执行此操作,当我尝试添加它时,Eclipse 表示它已经存在。
我完全按照视频进行操作。代码如下所示
package com.lynda.files;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
public class Main {
public static void main(String[] args) {
try {
File f1 = new File("loremipsum.txt");
File f2 = new File("target.txt");
FileUtils.copyDirectory(f1, f2);
System.out.println("File copied!");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
当我运行代码时,我在控制台中收到消息
java.io.IOException: Source 'loremipsum.txt' exists but is not a directory
at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:1371)
at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:1261)
at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:1230)
at com.lynda.files.Main.main(Main.java:16)
在代码中它说导入了 FileUtils,但 eclipse 告诉我“源附件不包含文件 FileUtils.class 的源”。我尝试更改附加的源代码,但它给了我错误“无法写入文件 BlahBlahBlah.classpath(访问被拒绝)
希望我没有喋喋不休地谈论一些显而易见和简单的事情。我认为最好尽可能清楚,以防其他人遇到类似的问题。
编辑
我觉得自己好蠢。感谢您的帮助。我单击“copyDirectory”而不是“copyFile”。下次,我不会 panic ,在谷歌上搜索每一行错误并向人们寻求帮助,而是花时间浏览每一行并思考它的作用。感谢大家的帮助和耐心。
最佳答案
使用FileUtils.copyFile(f1, f2);
而不是FileUtils.copyDirectory(f1, f2);
关于java.io.IOException 源存在但不在目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24724662/