Как мне прочитать файл из пакета - что-то вроде пакета ресурсов в Java - PullRequest
0 голосов
/ 14 июня 2010

У меня есть файл words.txt, который я поместил в определенный пакет Java, и мне нужно будет прочитать его из того же места. Я не контролирую развертывание, поэтому не знаю, где будут развернуты пакеты.

Пример местоположения: com / example / files / words.txt.

Я знаю, как использовать класс ResourceBundle для чтения файла свойств из иерархии пакетов, а не относительного / абсолютного пути. как ResourceBundle.getBundle (com.example.files.words) Есть ли что-то похожее для общих файлов, чтобы я мог прочитать его из иерархии пакетов, а не по какому-либо абсолютному / относительному пути?

1 Ответ

4 голосов
/ 14 июня 2010

Вы можете использовать метод getResourceAsStream() (определенный в классе Class) для извлечения ресурсов из пути к классам.Если класс WordReader находится в пакете com.example, то путь к файлу ресурса должен быть files/words.txt

package com.example;

public class WordReader {

   public void readWords() {
     InputStream is = getClass().getResourceAsStream("files/words.txt");
     StringBuilder sb = new StringBuilder();
     for(Scanner sc = new Scanner(is); sc.hasNext(); )  
         sb.append(sc.nextLine()).append('\n');

     String content = sb.toString();
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...