Hi,
If I understand your use case, you actually don't need to read the "file in java", you just need to place properties files under "puppet control", meaning, ask Puppet to either deploy the files (if missing) or ensure its content is equal to the one on the Puppetmaster.
The real issue is that (up to my knowledge) no Java application will reload a properties file, so even if Puppet deploys a change to it, if the Java process has already been started, you'll need to restart it. Puppet has a mechanism called notify to do that, but if you don't want to restart the application this is not an option.
An other way to do it would be use Puppet to set up a cronjob that restarts the application during the "local night". This way; if you deploy a change during the day, the application will be made aware of it in the following night.
if you really need to have the Java app immediatly load the change, you need change from regular property files (.properties, load by the "bundle" mechanism) to plain configuration file, which scanned for changes regularly by your app. (ie code changes).