Java 在使用ClassLoader.getSystemResource(“File.txt”)访问的src\resources中找不到文件
我试图访问Java Netbeans项目中的一个文本文件,但一直没有找到该文件 请注意,我已尝试使用“src\…”和“resources\…”指定文件,并且仅使用文件名 这是我的代码:Java 在使用ClassLoader.getSystemResource(“File.txt”)访问的src\resources中找不到文件,java,Java,我试图访问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");
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);
我要走了
找不到文件
在上面代码的最后一行
这是我的项目:
请尝试阅读{Source Packages}/resources中的words.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();
}
}
如果您已经有了其他主方法,并且仍然希望将此代码保留在方法之外,则可以将其包装在静态块中:
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();
}
}
}
请尝试阅读{Source Packages}/resources中的words.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();
}
}
如果您已经有了其他主方法,并且仍然希望将此代码保留在方法之外,则可以将其包装在静态块中:
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();
}
}
}
好的第一步是检查
dir\u url
,确保它与文件的真实位置相匹配。@JLewkovich谢谢。我的意思是文件在上面截图中的项目目录中。我手动放在那里。在您的评论之后,我再次检查以确保它仍然存在。我的意思是调试代码并在运行时检查URL dir\u URL
,确保它与您手动放置file@JLewkovich哦,我明白了,谢谢你。是的,我现在就去做。好的第一步是检查dir\u url
,确保它与文件的真实位置匹配。@JLewkovich谢谢。我的意思是文件在上面截图中的项目目录中。我手动放在那里。在您的评论之后,我再次检查以确保它仍然存在。我的意思是调试代码并在运行时检查URL dir\u URL
,确保它与您手动放置file@JLewkovich哦,我明白了,谢谢你。是的,我现在就去。谢谢。如果我只是使用这种方法引用带有代码的文件,那么我会得到相同的错误。如果我用这个代码块替换我的代码,IDE会告诉我有一个未报告的异常IOException,并且不会给我自动修复它的选项。你可以将这个代码包装在try{}catch(Exeption e){}块中。我已经在我的Netbeans上运行了这段代码,效果很好。谢谢。Idk为什么Netbeans仍然不喜欢它:您必须将此代码放入一个方法中,例如:publicstaticvoidmain(String[]args){}。请再次查看我的更新。谢谢。如果我只是使用这种方法引用带有代码的文件,那么我会得到相同的错误。如果我用这个代码块替换我的代码,IDE会告诉我有一个未报告的异常IOException,并且不会给我自动修复它的选项。你可以将这个代码包装在try{}catch(Exeption e){}块中。我已经在我的Netbeans上运行了这段代码,效果很好。谢谢。Idk为什么Netbeans仍然不喜欢它:您必须将此代码放入一个方法中,例如:publicstaticvoidmain(String[]args){}。请再次查看我的更新。