Чтение / запись файлов в папке проекта
Привет, мне было интересно, как получить доступ к файлам в папке проекта в java/maven, я думал об использовании src/main/resources, но мне сказали, что записывать файлы в этом каталоге - плохая идея, и это должно быть только используется в конфигурации для проекта, поэтому я создал новую папку без исходного кода, но мне было интересно, есть ли способ получить доступ к этому файлу в Java без указания абсолютного пути, так как мне нужно использовать его в другой среде. любая помощь или другие подходящие предложения были бы здесь благодарны. я буду писать в файлы во время выполнения.
РЕДАКТИРОВАТЬ:
я использую это для доступа к файлу:
private static final String ACTUAL_VALUES ="verification/actualCounterValues.csv";
где verification
это папка, которую я создал в своем проекте
1 ответ
Как я понимаю, ваша цель - получить доступ к файлу из вашего приложения, без жесткого указания относительного пути, потому что вы собираетесь запускать его в разных средах.
Первое, что вам, возможно, придется решить, это отделить ссылку на файл от вашего приложения - потому что если вы перемещаете свое приложение, оно должно адаптироваться к новой среде. Вы можете решить эту проблему, поместив абсолютную ссылку на файл в системную среду (которая доступна через System.getenv()
метод). Другим способом может быть предоставление пути к файлу в качестве аргумента командной строки.
После этого вы должны указать, когда какой запущенный экземпляр вашего приложения будет обращаться к файлу. Если ваше приложение выполняется отдельно в maven и производственной среде - все в порядке с использованием относительных путей в maven-проекте. Затем производственное приложение сгенерирует и использует свой собственный файл в своей среде.
Если они должны совместно использовать файл, вы должны предоставить физический доступ из обеих сред к этому пути к файлу, после чего вы можете получить доступ к этому файлу с помощью отдельных абсолютных путей (передаваемых через cli-args или system-properties) или с "жестко закодированным" относительные пути, которые обращаются к файлу-ссылке (которые указывают на этот абсолютный файл).
Но я должен отговорить вас от использования каких-либо жестко заданных переменных, специфичных для конфигурации, из соображений текущего обслуживания.
И если эти два экземпляра приложения будут обращаться к одному и тому же файлу, вы также должны знать о возможных трудностях параллелизма (особенно в файловой системе - см. Этот пост).