Java getResourceAsStream()不读取任何内容
我是在开玩笑,一个java试图编程一个游戏,我不会定义无用的细节,这个程序可以工作,但只有当我从开发它的时候它才能工作,但是如果我尝试什么都不做,我会在互联网上读到访问文件,比如图像或txt文件,您必须使用Class.Class.getResourceAsStream路径,但后者在从jar启动时不起作用,事实上,或者在从NullPointerException启动时不起作用,或者运行平稳,但不加载任何内容 我将解释我的项目结构并向您展示我的代码: 列表生成Java getResourceAsStream()不读取任何内容,java,netbeans,filepath,Java,Netbeans,Filepath,我是在开玩笑,一个java试图编程一个游戏,我不会定义无用的细节,这个程序可以工作,但只有当我从开发它的时候它才能工作,但是如果我尝试什么都不做,我会在互联网上读到访问文件,比如图像或txt文件,您必须使用Class.Class.getResourceAsStream路径,但后者在从jar启动时不起作用,事实上,或者在从NullPointerException启动时不起作用,或者运行平稳,但不加载任何内容 我将解释我的项目结构并向您展示我的代码: 列表生成 -build - class
-build
- classes
- mario
-all the package and the file example: crediti/ringraziamenti.txt
列表区
-dist
-jarFile
-mario
-all the package and the file example: crediti/ringraziamenti.txt
-meta inf...
列出java
-src
-mario
- all the package and the file example: crediti/ringraziamenti.txt
我的代码是:
InputStream io =(getClass().getClassLoader().getResourceAsStream("mario/crediti/ringraziamenti.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(io));
String temp = "";
while((temp = br.readLine())== null){
System.out.println(""+temp);
}
指定一个资源文件夹,将文件放在那里。假设您有以下结构: -src -马里奥 -所有包和文件示例: crediti/ringraziamenti.txt 将资源文件夹添加到与包相同的级别,将文件移动到该级别,然后尝试:
InputStream io =(getClass().getClassLoader().getResourceAsStream("/crediti/ringraziamenti.txt"));
按如下方式修复代码: 在getResourceAsStream调用中的路径前面放一个斜杠,否则它将从当前类的包开始搜索。 在while循环中,比较!=null而不是==null—您希望循环在有行文本的情况下继续运行,而不是在没有行文本的情况下继续运行。
你有什么错误吗?whiletemp=br.readLine==null{-the==非常可疑。卷心菜这个数字…疲劳一定让我犯了这样一个错误…并且认为这是两个小时我不明白问题在哪里,真遗憾…无论如何感谢你指出我的错误。“否则它将从当前类的包开始搜索”不正确。class.getResourceAsStream以这种方式工作;ClassLoader.getResourceAsStream不以这种方式工作。初始斜杠对于后一种方法永远无效。
InputStream io =(getClass().getClassLoader().getResourceAsStream("/mario/crediti/ringraziamenti.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(io));
String temp;
while((temp = br.readLine()) != null){
System.out.println(""+temp);
}