Java getResourceAsStream()不读取任何内容

Java getResourceAsStream()不读取任何内容,java,netbeans,filepath,Java,Netbeans,Filepath,我是在开玩笑,一个java试图编程一个游戏,我不会定义无用的细节,这个程序可以工作,但只有当我从开发它的时候它才能工作,但是如果我尝试什么都不做,我会在互联网上读到访问文件,比如图像或txt文件,您必须使用Class.Class.getResourceAsStream路径,但后者在从jar启动时不起作用,事实上,或者在从NullPointerException启动时不起作用,或者运行平稳,但不加载任何内容 我将解释我的项目结构并向您展示我的代码: 列表生成 -build - class

我是在开玩笑,一个java试图编程一个游戏,我不会定义无用的细节,这个程序可以工作,但只有当我从开发它的时候它才能工作,但是如果我尝试什么都不做,我会在互联网上读到访问文件,比如图像或txt文件,您必须使用Class.Class.getResourceAsStream路径,但后者在从jar启动时不起作用,事实上,或者在从NullPointerException启动时不起作用,或者运行平稳,但不加载任何内容

我将解释我的项目结构并向您展示我的代码:

列表生成

 -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);
}