我正在尝试打开位于我的netbeans项目文件夹中的txt文件,但它说系统找不到指定的文件。
File file = new File("Knowledge Base.txt");
答案 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文件的文件路径。