Загрузить файл из исходного пакета - PullRequest
1 голос
/ 02 сентября 2010

Я пытаюсь загрузить текстовый файл из пакета src. Я не хочу загружать его как поток ввода. Я хотел бы загрузить его как FileReader.

Глядя на то, как netbeans загружает иконки, я попытался использовать код:

getClass().getResourcesAsStream("/getresources/test.txt");

Однако я не могу найти какой-либо способ преобразования входного потока в устройство чтения файлов. Есть ли в любом случае сделать это, чтобы я мог использовать FileReader. Я знаю, что могу разбить входной поток на строки самостоятельно, но это похоже на большую работу.

Спасибо!

нт

Ответы [ 3 ]

3 голосов
/ 02 сентября 2010

Возможно, вы захотите использовать вместо него BufferedReader. Он имеет те же преимущества Filereader, может читать построчно и т. Д., И принимает InputStreamReader, который принимает InputStream. Эти классы ввода-вывода на самом деле являются реализацией хорошо известного шаблона Decorator. Если вы прочтете этот шаблон, вы, вероятно, поймете все эти классы ввода-вывода.

FileReader ожидает файл.

2 голосов
/ 02 сентября 2010

Обратите внимание, что ресурс classpath может быть недоступен из файловой системы.Кроме того, я предполагаю, что любой приличный API будет принимать Reader, а не FileReader.Вы можете сделать:

Reader reader = new InputStreamReader(inputStream);
1 голос
/ 02 сентября 2010

Поскольку у вас есть потоковый ресурс (который может быть получен из URL), а не файл, я бы предложил использовать InputStreamReader.

...