Не удается найти и прочитать файл в Java - PullRequest
0 голосов
/ 05 февраля 2020

Я совершенно новичок в Java и использую чей-то другой код для чтения двоичного файла, но файл не открывается. Я запускаю код в Eclipse под Windows 10, файл называется bookDeepDist.dat Я поместил его в папку проекта. Полный путь, который я также попробовал (но безуспешно): C: \ Users \ Alan \ eclipse-workspace \ readDatabase \ bookDeepDist.dat

Неудачный код:

public void openBook() throws IOException {

    file = getClass().getResourceAsStream(BOOKPATH[bookNr]);
    if (file == null)
        throw (new IOException("Could not open File "+BOOKPATH[bookNr]));
}

Сообщение об ошибке: Не удалось открыть файл bookDeepDist.dat

, поэтому, похоже, он пытается открыть правильный файл. Кто-нибудь может подсказать мне, что может пойти не так?

1 Ответ

1 голос
/ 05 февраля 2020

Проблема в том, что getResourceAsStream () ищет в пути к классам запущенной Java программы. Вот почему это работает, когда вы помещаете файл в папку проекта. То, что вы хотите, это поток файла вне пути к классу программы.

Вместо

file = getClass().getResourceAsStream(BOOKPATH[bookNr]);

попробуйте использовать

file = new FileInputStream(BOOKPATH[bookNr]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...