我正在开玩笑试图编写游戏的java,我不打算定义无用的细节,程序可行,但只有当我从开发它的时候(Netbeans)得到它,它才有用,但是如果我试着让它开始Jar什么都没有,我在互联网上读到要访问文件,如图像或txt文件,你必须使用Class.class.getResourceAsStream(路径),但后者无法启动它从jar,事实上或我从NullPointerException或顺利,但不加载任何东西。
消失了我会解释我项目的结构并向你展示我的代码:
列表构建
-build
- classes
- mario
-all the package and the file example: crediti/ringraziamenti.txt
列出dist
-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);
}
答案 0 :(得分:-1)
指定资源文件夹,将文件放在那里。假设你有结构:
-src -mario - 所有包和文件示例: crediti / ringraziamenti.txt
将resource
文件夹添加到与您的包相同的级别,将文件移到那里并尝试:
InputStream io =(getClass().getClassLoader().getResourceAsStream("/crediti/ringraziamenti.txt"));
答案 1 :(得分:-2)
修改代码如下:
getResourceAsStream
调用中的路径前放一个斜杠,否则它将从当前类的包中开始搜索。!= null
而不是== null
- 您希望循环继续运行,只要有文本行,就不会有没有行的文字。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);
}