FileInputStream является нулем? - PullRequest
       0

FileInputStream является нулем?

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

Хорошо, так что это строка, которая возвращает ноль.Что я делаю не так при создании этого FileInputStream?

FileInputStream fin = new FileInputStream(new File(getClass().getResource("data/levellocks.lv").toURI()));

Ответы [ 4 ]

4 голосов
/ 28 сентября 2010

Единственное, что может быть нулевым, - это getResource ("data / levellocks.lv"), который вызывает вызов toURI для сбоя

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

Либо getClass, либо getResource могут вернуть ноль.Все остальное должно завершиться успешно или сгенерировать исключение.

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

Если вам действительно не нужен поток ввода файлов, строку можно упростить до:

InputStream in = getClass().getResourceAsStream("data/levellocks.lv");

Class.getResource () и Class.getResourceAsStream относятся к пакету. Чтобы получить файл относительно корня пути к классам, вы можете вызвать эти методы в загрузчике классов:

InputStream in = getClass().getClassLoader().getResourceAsStream("data/levellocks.lv");

Вы убедились, что файл находится в вашей двоичной папке, рядом с файлами .class? Не только в вашей исходной папке рядом с файлами .java?

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

Я на самом деле только что имел дело с этой проблемой (я не эксперт), но попробуйте отладку и посмотрите, где конструктор пытается разрешить имя.Для меня это был пакет занятий.Поэтому, когда я поместил файл в ожидаемую папку, он нашел его.

Возможно, для вас это будет иначе, так как я использую maven.Но я поместил его в src / main / resources, и он не смог его найти.Когда я поместил структуру папок в src / main / resources com.work.hin.terminology.match (который был пакетом класса), он нашел ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...