В настоящее время я загружал файл свойств из пути к классам, используя следующий код с помощью Гуавы API:Избавьтесь от проверяемого исключения при использовании NiO2 API
final URL fileURL = Resources.getResource("res.properties");
final File file = new File(fileURL.getFile());
я решил дать попробовать новый NiO2 API введен в Java7SE и удалять любые гуавы API вызовы, так что я преобразовал код на следующее:
final URL fileURL = getClass().getResource("/res.properties");
final Path path = Paths.get(fileURL.toURI());
Но модифицированный код генерирует проверяемое исключение в строке, где происходит преобразование между URL
и URI
. Есть ли способ избавиться от него. Могу ли я получить экземпляр Path
с данными URL
, например?
P.S. Я знаю, что модифицированный код не является семантически таким же, как и оригинальным. getResource
Guava выбрасывает IllegalArgumentException
, если ресурсы не найдены, в этом случае getResource
Java возвращает null
.
это вариант, но код становится немного нечитаемым (или скажем в заблуждение). Я бы хотел использовать только новый API (без прохождения старого). – jilt3d
Кстати, это вызывает несколько вопросов: почему большинство методов getResource() возвращают URL-адреса, а с другой стороны, фабричные методы для создания Path требуют URI, поскольку конструктор File делает то же самое? – jilt3d
'Paths.get (fileUrl.toString())' должен работать. – assylias