Получить абсолютный путь к файлу из объекта InputStream (ByteArrayInputStream) - PullRequest
1 голос
/ 11 марта 2020

У меня есть следующий фрагмент кода:

class Train{
   static{
        InputStream inpStr = Train.class.getClassLoader().getResourceAsStream("ABC.properties");
        Properties props = new Properties();
        props.load(inpStr);
   }
}

Я хочу знать абсолютный путь к файлу этого файла AB C .properties, т.е. откуда его читает inpStr? Благодаря отладке я понял, что объект, присвоенный inpStr, на самом деле имеет значение java.io.ByteArrayInputStream. Но я не смог найти способ получить абсолютный путь к файлу. Пожалуйста, помогите

1 Ответ

1 голос
/ 11 марта 2020

Сначала вам нужно получить ресурс, а не resourceAsStream:

URL resource = Train.class.getClassLoader().getResource("ABC.properties");

Затем вы получите путь

Path path = Paths.get(resource.toURI());

И, наконец, вы можете отобразить absolutePath

System.out.println(path.toAbsolutePath().toString());
...