Если someFile.txt
находится в той же папке, что и LoadSAC.java
, вы можете сделать:
InputStream is = LoadSAC.class.getResourceAsStream("someFile.txt");
Если someFile.txt
находится в подпапке subdir
, вы можете сделать:
InputStream is = LoadSAC.class.getResourceAsStream("subdir/someFile.txt");
Если ваш метод в LoadSAC.java
нестатичен, вы можете заменить LoadSAC.class.getResourceAsStream...
на getClass().getResourceAsStream...
Будьте внимательны при компиляции с ant
или maven
, по умолчанию только файлы .java
копируются как файлы .class
в каталог сборки.
Вы должны написать некоторые правила, чтобы включить someFile.txt
в финал jar
.
В вашем каталоге resource
вы можете добавить небольшой вспомогательный класс, например так:
import java.io.InputStream;
import java.net.URL;
import javax.activation.DataSource;
import javax.activation.URLDataSource;
public abstract class ResourceHelper {
public static URL getURL(String name) {
return ResourceHelper.class.getResource(name);
}
public static InputStream getInputStream(String name) {
return ResourceHelper.class.getResourceAsStream(name);
}
public static DataSource getDataSource(String name) {
return new URLDataSource(getURL(name));
}
}
В LoadSAC.java
просто позвоните:
InputStream is = ResourceHelper.getInputStream("someFile.txt");