找不到指定java的文件

时间:2017-12-02 15:39:25

标签: java file

我正在尝试打开位于我的netbeans项目文件夹中的txt文件,但它说系统找不到指定的文件。

 File file = new File("Knowledge Base.txt");

2 个答案:

答案 0 :(得分:1)

在IDE上运行时,当前目录并不总是放置.class文件的目录。

使用

查找当前目录
System.getProperty("user.dir")

然后对路径进行必要的更改以将其移至目录。

答案 1 :(得分:0)

给定的路径假设一个绝对路径,因此如果没有为它添加前缀,它将假定它位于根目录中。要解决此问题,您可以执行以下操作:

String path = new File(".").getAbsolutePath();
path=path.substring(0, path.length() - 1);
path+="Knowledge Base.txt"
File file = new File(path);

第一行获取app文件的绝对路径。第二个减去最后一个字符,为目录留下 / 字符。第三行将您的文件添加到字符串,第四行从字符串构造文件对象。此方法假定该文件与您的类位于同一文件夹中。

如果您的程序打包为.jar和libs文件夹,那么您可以改为执行此操作。

String path = Test.class.getProtectionDomain().getCodeSource().getLocation().getPath();
String decodedPath = URLDecoder.decode(path, "UTF-8");
decodedPath+="/Temp";
File file = new File(decodedPath);

这次我们获取.jar的路径,然后使用UTF-8对其进行解码,因为空格会变为"%20"如果我们没有。您需要更换"测试"与你的班级名称和" / Temp"将.jar中的路径放到文件中。其余部分与非.jar方法相同,但我们不需要删除"。"从字符串的结尾。使用 Answer Fab来解码.jar文件的文件路径。