Подтвердить что ты не робот

Как указать путь в файле свойств, который должен быть загружен с помощью свойств Java

У меня есть файл .properties, который я хочу загрузить в объект Java Properties. Файл содержит несколько путей. Чтобы загрузить файл свойств без получения java.lang.IllegalArgumentException: Malformed \uxxxx encoding. при загрузке свойств из файла с помощью метода Properties.load(), мне нужно использовать escape-символ '\' в пути.

Итак, мой путь выглядит так: C:\\Users\\Harald\\Folder1\\Version1\\Folder2. И он работает таким образом, никакое исключение не выбрасывается.

Проблема заключается в том, что я не могу объяснить своему пользователю (потому что этот путь может быть изменен пользователем!), что ему нужно использовать двойную '\' в пути.

Кто-нибудь знает об этой проблеме? Спасибо!

4b9b3361

Ответ 1

Еще проще использовать использовать косые черты. Таким образом, ваш путь будет выглядеть как C:/Users/Harald/Folder1/Version1/Folder2, а все остальное будет работать - не требуется изменение кода!

Ответ 2

Я немного смущен вашим вопросом. Вы спрашиваете, есть ли способ, чтобы пользователь мог редактировать файл свойств без использования неинтуитивного символа \escape?

Если вы настроите это для того, чтобы пользователь мог редактировать, возможно, у вас должна быть программа или script для создания файла свойств (добавление в escape-символы при необходимости)

Ответ 3

Возможно, вам лучше определить путь для пользователя, чтобы поместить файл свойств, или указать их в существующий файл свойств (содержащий комментарии о полезных свойствах и т.д.), например. ${user.home}\\myapp\\myprops.properties, а затем всегда загружайте этот файл или, еще лучше, просто укажите каталог и загрузите каждый файл, который заканчивается на .properties в этом каталоге.

Если ваше приложение является графическим интерфейсом, вы также можете разрешить пользователю выбирать файл в диалоговом окне файла. Строки, которые вы возвращаете из качаний, а также метки SWT и файлы, являются дружественными java, и вам не нужно беспокоиться о escape-символах.