There is a very important difference between "files"
inside a WAR file and
actual files.
You cannot do filesystem open/close/etc. operations on the "files" inside a WAR file. Technically, those aren't files, they're
resources. The actual access to them has to be done via the ZIPfile class methods.
What makes this even more confusing is that
sometimes some webapp servers will unzip (explode) WAR files to construct an actual filesystem directory structure with true subdirectories and files. But that's not a safe assumption to make, since it's not always true and some of those systems (such as
Tomcat) allow disabling that function. So to be safe,
never use file operations on webapp resources. Use the getResource methods. And be aware that the get system file path method of a resource can return null if the WAR wasn't exploded and thus no physical file exists.
If my memory serves, there is an enumeration method that can be used to browse a WAR for resource paths, and that would allow you to search for, open and read (but not write!) any resource that matched your criteria (path ends with ".properties").
Additionally, if you put the resource in a jar in WEB-INF/lib or in the WEB-INF/classes resource sub-tree, you can use classpath methods to discover resources, since those locations automatically go into the webapp's classpath.