Второй будет лучшим выбором.
Представьте себе следующую ситуацию. Настройки обновляются другими потоками, и во время некоторых из них, поскольку значение настройки не заблокировано, оно изменяется на другое значение.
В первой ситуации ваше выполнение может завершиться сбоем, или оно будет выполнено нормально, но код проверял файл с каким-либо именем, а затем сохраняет все, что не было проверено ранее. Это очень плохо, не правда ли?
Еще одно преимущество - вы не получаете значение дважды. Вы получаете один раз, и вы используете, где ваш код должен прочитать весь параметр.