Относительный путь к веб-приложению: /STUFF/read.txt
.
Вы можете использовать ServletContext # getRealPath ()
для преобразования относительного веб-пути в абсолютный путь файловой системы на локальном диске. Таким образом, вы можете использовать его в дальнейшем в обычном java.io
материале, который на самом деле ничего не знает о веб-контексте, в котором он работает. Например,
String relativeWebPath = "/STUFF/read.txt";
String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath);
File file = new File(absoluteDiskPath);
// Do your thing with File.
Однако это не работает, если сервер настроен на развертывание WAR в памяти, а не на диске. Использование getRealPath ()
всегда имеет это предостережение и не рекомендуется в реальных приложениях. Если все, что вам в конечном итоге нужно, это просто получить InputStream
этого файла, для которого вы, вероятно, использовали бы FileInputStream
, вам лучше использовать ServletContext # getResourceAsStream ()
, чтобы получить его напрямую как InputStream
:
String relativeWebPath = "/STUFF/read.txt";
InputStream input = getServletContext().getResourceAsStream(relativeWebPath);
// Do your thing with InputStream.