我目前正在嘗試獲取目錄中的文件列表。 當我嘗試獲取目錄的文件句柄時,它說它是一個文件,但它不是。當我從它readString()
,它返回其中的文件的文件名。這隻發生在IDE(Eclipse NEON.2)中,但當我導出到JAR時,它會在我嘗試運行時崩潰。LibGDX isDirectory()返回假即使它是一個目錄
如何讓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
端子輸出:
真
假
在java.io.FilterInputStream.read異常在線程 「LWJGL應用程序」 顯示java.lang.NullPointerException
(來源不明)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
在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)
at dev.thomaslienbacher.simplegame.controllers.EnemyManager.loadAssets(EnemyManager.java:33)
at dev.thomaslienbacher.simplegame.scene.GameS cene.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)
你在哪個平臺上運行?對我來說,在Windows上,內部FileHandle上的'list()'返回一個空數組,如預期基於方法的Javadocs。 – Tenfour04
我用Intellij IDEA嘗試了Windows和Mac,它給了我一個非零長度的數組。根據文檔它應該是一個零長度的數組,所以我嘗試了Eclipse Neon.3,然後我得到了零長度的數組。爲什麼一些IDE給我非零長度的數組? – Aryan