以下のいずれかです。
- クラスパス直下にある場合は、
/hoge.txt
のように「スラッシュ + ファイル名」を指定 - クラスのパッケージ名と同じ場所にある場合は、
hoge.txt
のように「ファイル名」を指定
詳しくは Class#getResourceAsStream(String name) - JavaDoc を参照し…、分かりにくいので解説します。
「スラッシュ + ファイル名」で指定する場合
通常、resources
からのパスを指定する場合に使います。
上の図では resources/samaple.txt
にファイルを配置しています。
これを jar ファイルにコンパイルした場合、クラスパス直下に sample.txt
が配置されます。
そのため、 Main.class.getResourceAsStream("/sample.txt")
とすれば、sample.txt
の InputStream
を取得できます。
「ファイル名」で指定する場合
通常、resources/<パッケージ名>
の位置にあるファイルを指定する場合に使います。
上の図では resources/org/example/samaple.txt
にファイルを配置しています。
これを jar ファイルにコンパイルした場合、org/example/sample.txt
に配置されます。
そのため、Main.class.getResourceAsStream("sample.txt")
とすれば、org/example/sample.txt
の InputStream
を取得できます。