【发布时间】:2017-09-14 01:40:48
【问题描述】:
我目前正在尝试获取目录中的文件列表。
当我尝试获取目录的文件句柄时,它说它是一个文件,但它不是。然后,当我从中 readString() 时,它会返回其中文件的文件名。这只发生在 IDE (Eclipse NEON.2) 中,但是当我导出到 JAR 时,它会在我尝试运行时崩溃。
如何让 LibGDX 将其识别为目录并获取该目录中的所有文件。最后一件事我看到很多回答说list() 在桌面上不起作用,但我也读过它可以工作。有人可以检查这是不是真的。
public void loadEnemyBaseTypes(){
ArrayList<FileHandle> enemyBaseFiles = new ArrayList<FileHandle>();
FileHandle enemyBaseDirectory =
Gdx.files.internal("prototypes/enemybases");
System.out.println(enemyBaseDirectory.exists());
System.out.println(enemyBaseDirectory.isDirectory());
String[] fileNames = enemyBaseDirectory.readString().split("\n");
for(int i = 0; i < fileNames.length; i++)
System.out.println(fileNames[i]);
}
IDE 输出:
是的
假
base_0.enybse
base_1.enybse
base_2.enybse
base_3.enybse
base_4.enybse
base_5.enybse
终端输出:
是的
假
线程“LWJGL 应用程序”中的异常 java.lang.NullPointerException
在 java.io.FilterInputStream.read(Unknown Source)
在 sun.nio.cs.StreamDecoder.readBytes(未知来源)
在 sun.nio.cs.StreamDecoder.implRead(未知来源)
在 sun.nio.cs.StreamDecoder.read(未知来源)
在 java.io.InputStreamReader.read(未知来源)
在 java.io.Reader.read(未知来源)
在 com.badlogic.gdx.files.FileHandle.readString(FileHandle.java:207)
在 com.badlogic.gdx.files.FileHandle.readString(FileHandle.java:191)
在 dev.thomaslienbacher.simplegame.controllers.EnemyManager.loadEnemyBaseTypes(EnemyManager.java:53)
在 dev.thomaslienbacher.simplegame.controllers.EnemyManager.loadAssets(EnemyManager.java:33)
在 dev.thomaslienbacher.simplegame.scene.GameScene.loadAssets(GameScene.java:62)
在 dev.thomaslienbacher.simplegame.Game.update(Game.java:149)
在 dev.thomaslienbacher.simplegame.Game.render(Game.java:134)
在 com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:223)
在 com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124)
【问题讨论】: