3

Java プログラミングの問題があり、助けが必要です。

クラスファイルを別のパッケージ (デフォルトのパッケージではありません) に入れています。res フォルダーからファイルにアクセスしようとしています。クラスフォルダーとして追加しました(プロパティ->ライブラリ->クラスフォルダーの追加を使用)クラスには次のコードがあります:

InputStream IS = getClass().getResourceAsStream("mytextfile.txt");

ただし、機能しません。適切なインポートとすべてをすべて持っていますが、機能させることができません...(ISを使用しようとするとnullポインター例外が発生します)

デフォルトのパッケージを使用する別のプログラムがあり、正常に動作するため、別のパッケージを使用することに関係があると思います...

Eclipse を使用しているときと、.jar としてエクスポートしたときの両方で、ファイルにアクセスできる方法が必要です。

よろしくお願いします。

編集: /res/mytextfile.txt を使用してみましたが、どちらも機能しません...

4

1 に答える 1

4

getClass().getResourceクラスが存在する場所に相対的な名前付きリソースを探します。

したがって、クラスが packagefoo.barに存在する場合は、 (クラスのプレフィックス、クラスローダーのクラスパスコンテキスト...)getResourceを調べます。foo/bar/mytextfile.txt

代わりに、次のような相対パスを使用してみてください。

InputStream IS = getClass().getResourceAsStream("/mytextfile.txt");

また

InputStream IS = getClass().getResourceAsStream("/res/mytextfile.txt");

resリソースディレクトリが呼び出され、デフォルトパッケージの下に存在すると仮定します

于 2013-10-01T03:58:41.230 に答える