1

所以我有这个类:

http://pastebin.com/EwXFwuZz

而这个目录树: http ://s14.directupload.net/file/d/3099/uskko5mo_png.htm

我正在这个项目上使用 LibGDX 框架。这基本上是我的问题:

我有一个文件,其中包含“块”中的级别信息。每行是一个块。我想每行读取文件行。不幸的是,LibGDX 的内置 FileHandling 系统不支持逐行读取,所以我想坚持使用股票 Java 系统。

但是我得到了这个“FileNotFound”异常:

java.io.FileNotFoundException: ./assets/data/lvls/example.txt (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:120)
    at java.io.FileReader.<init>(FileReader.java:55)
    at gemini.cute.game.xvii.database.LevelReader.<init>(LevelReader.java:49)
    at gemini.cute.game.xvii.core.MainLauncher.create(MainLauncher.java:40)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:124)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:107)

使用 LibGDX 可以找到该文件,但将其读入一个巨大的字符串。并且由于某种原因具有相同的路径(甚至从根目录开始),找不到该文件。

对于不熟悉 LibGDX 的人,我在上面的“CuteGameXVII”项目中编码,但为了编译,我在“CuteGameXVII-desktop”中运行“Main”。资产文件夹是通过 eclipse 链接的,并且到目前为止可用于其他资源。

我在这里错过了一些非常明显的东西吗?如果是这样,请帮助我:P 提前谢谢你。

4

2 回答 2

3

如果您从带有 path 的目录运行 Java 程序$DIR,则输入文件应位于$DIR/assets/data/lvls/example.txt. 根据您收到的异常,此位置不存在输入文件。

我建议您首先尝试在代码中使用输入文件的绝对路径。然后,找出它的相对路径是什么。

于 2012-12-09T21:02:32.077 回答
2

我也遇到过这个问题。为了使用 LibDGX 从您的资产目录中读取文件,您必须使用 LibGDX 方法替换:

new FileInputStream("SomeFile.txt")

经过

Gdx.files.internal("SomeFile.txt").read()

assuming "someFile.txt" is in your asset root folder.

于 2016-04-02T17:09:03.440 回答