1

だから私はこのクラスを持っています:

http://pastebin.com/EwXFwuZz

そして、このディレクトリ ツリー: http://s14.directupload.net/file/d/3099/uskko5mo_png.htm

そして、私はこのプロジェクトで LibGDX フレームワークを使用しています。これは基本的に私の問題です:

「チャンク」にレベル情報を含むファイルがあります。各行は 1 つのチャンクです。ファイルの行を 1 行ずつ読みたい。残念ながら、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 を使用すると、ファイルが見つかりますが、1 つの巨大な文字列に読み込まれます。なんらかの理由で、同じパス (ルートからでも) でファイルが見つかりません。

LibGDXに慣れていない人のために、私は上の「CuteGameXVII」プロジェクトでコーディングしていますが、コンパイルのために「CuteGameXVII-desktop」で「メイン」を実行しています。アセット フォルダーは 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()

「someFile.txt」がアセットルートフォルダーにあると仮定します。

于 2016-04-02T17:09:03.440 に答える