2017-01-16 5 views
0

私は現在、intellijにJava/kotlinプロジェクトをコーディングしており、XMLやその他のテキストベースのファイルを取得するためにファイルリーダーを使用する必要があります。どこからでも参照プロジェクトディレクトリ

ファイルと呼ばれるディレクトリを作成しました。このディレクトリにはすべてのファイルが必要です。

問題は私が持っているのは、どのディレクトリからメソッドが呼び出されたかによってファイルディレクトリを参照するためのメソッド呼び出しのために新しいパスを作る必要があるということです。

System.getDirectoryのように、(「ファイル」OR「ルート」)など

私は現在はSystem.getPropertyを使用していますが、何かをプロジェクトのルートディレクトリやファイルのディレクトリを参照すると、それはどこでも仕事している方法はあります( "user.dir")しかし、このパスは呼び出されている場所に主観的なので、私が探しているものではありません。

+1

*から呼び出されるファイルによって異なります*:いいえ、そうではありません。相対パスは** current **ディレクトリ、すなわち 'java'が実行されるディレクトリからの相対パスです。 IDEから実行する場合は、実行コンフィギュレーションで明示的に指定しない限り、通常はプロジェクトのルートディレクトリです。 –

+0

'私はファイルと呼ばれるディレクトリを作ったのですが、どこにそのディレクトリを作成しましたか?どのようにプロジェクトを始めるのですか? – t0r0X

答えて

1

ファイルがアプリケーションにバンドルされている場合は、リソースを使用してクラスパスからロードします。それ以外の場合は、設定サポートやコマンドラインパラメータをアプリに追加して、発信者がこれらのファイルの場所を指定できるようにすることをおすすめします。 '現在のディレクトリ'を調べることには、エラーが発生しやすく、環境に依存します(あなたの場合は、Intellijの 'Run Configuration'で、通常はMavenプロジェクトで$ MODULE_DIR $を指定します)。

関連する問題