提问人:Hack-R 提问时间:9/18/2016 最后编辑:Hack-R 更新时间:9/18/2016 访问量:546
找不到使用 ClassLoader.getSystemResource(“file.txt”) 访问的 src\resources 中的文件的文件
File not found for file in src\resources accessed with ClassLoader.getSystemResource("file.txt")
问:
我正在尝试访问我的 Java Netbeans 项目中的文本文件,但我总是找不到文件。
请注意,我尝试使用“src\ ....”、“resources\ ...”指定文件,并且仅使用文件名。
这是我的代码:
static class Task extends TimerTask {
// Load the directory as a resource
URL dir_url = ClassLoader.getSystemResource("word_list_moby_credits.txt");
// Turn the resource into a File
File f = new File(dir_url.getFile());
Scanner scanner = new Scanner(f);
我得到了
未找到文件
在上面代码的最后一行。
这是我的项目:
答:
2赞
Tho
9/18/2016
#1
请尝试阅读{源包}/资源中的单词.txt:
public static void main(String[] args) {
try{
URL url = Task.class.getResource("/resources/words.txt");
Scanner scanner = new Scanner(url.openStream());
System.out.println("" + scanner.next());
} catch(IOException ex) {
ex.printStackTrace();
}
}
如果您已经有其他 main 方法,但仍希望将此代码保留在方法之外,则可以将其包装在静态块中:
static class Task extends TimerTask {
static {
try {
URL url = Task.class.getResource("/resources/words.txt");
Scanner scanner = new Scanner(url.openStream());
System.out.println("" + scanner.next());
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
评论
0赞
Hack-R
9/18/2016
谢谢。如果我只是使用这种方式用我的代码引用文件,那么我会得到同样的错误。如果我用这个代码块替换我的代码,IDE 会告诉我有一个未报告的异常 IOException,并且不会给我一个自动修复它的选项。
0赞
Tho
9/18/2016
您可以将此代码包装在 try {} catch(Exeption e) {} 块中。我已经在我的 Netbeans 上运行了这段代码,它工作正常。
0赞
Hack-R
9/18/2016
谢谢。不知道为什么 Netbeans 仍然不喜欢它:imgur.com/a/6yHhG
0赞
Tho
9/18/2016
您必须将此代码放在以下方法中:public static void main(String[] args) {}。请再次查看我的更新。
评论
dir_url
URL dir_url