Если я использую файл, вызывающий его напрямую:
FileInputStream fileInputStream = new FileInputStream("SR02_pattern.xls");
(файл находится в каталоге \ apv \ main-app), он не будет развернут, и, конечно, он не будет будет видно, когда проект будет запущен на сервере.
Если я помещу файл в каталог / apv / main-web / WEB-INF / classes /, он будет развернут, и я могу вызвать его
InputStream inStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("SR02_pattern.xls")
, когда проект развернут на сервере, но эта строка не будет читать файл в случае, если класс был запущен из теста.
Вероятно, место, где файл будет искать getResourceAsStream ("SR02_pattern.xls"), определяется некоторыми системными свойствами, и я могу их использовать, но я не знаю, какие свойства могут помочь.
Как я могу прочитать файл в обоих случаях по одному и тому же коду, не передавая его в качестве параметра в класс?
Есть много ответов на SO для любого из этих случаев, но я не смог найти тот, который подходит для обоих. Пути по умолчанию для обоих случаев различны.
Конечно, я могу поместить файл в обоих местах, и в случае, если файл не находится в первой папке, посмотрите его во второй, как я делаю сейчас , но поддержание двух копий подвержено ошибкам, и я хочу использовать лучший стиль.