Как загрузить текстовый файл из работающей фляги - PullRequest
1 голос
/ 18 ноября 2011

Если у меня есть проект, в котором есть текстовый файл, и я хочу иметь возможность прочитать этот текстовый файл, который будет храниться в моем работающем фляге, то как я могу это сделать?В настоящее время у меня есть такая настройка

public void someMethod()
{
    File f = new File("aFileInEclipseResourcesFolder.txt");

    doSomethingWithFile(f);
}

private void doSomethingWithFile(File f)
{
    //print the data in the file;
}

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

С уважением

Ответы [ 3 ]

1 голос
/ 18 ноября 2011

getResourceAsStream предоставляет InputStream, который вы можете использовать, просто как FileInputStream. Затем вы можете использовать:

InputStream is = getClass().getResourceAsStream("a/b/c/aFileInEclipseResourcesFolder.txt");
BufferedReader in = new BufferedReader(new InputStreamReader(is, "UTF-8")); // Or "Cp1252"?
...
0 голосов
/ 18 ноября 2011

Вы не хотите использовать getResourceAsStream (), который хотите.

public URL getResource(String name)

URL-адрес укажет вам путь к ресурсу, и вы можете создать объект File из этого.

0 голосов
/ 18 ноября 2011

Когда у меня была эта проблема около года назад, единственное решение, которое я нашел, это найти местоположение файла jar (который на самом деле является просто zip-файлом), просмотреть его и найти нужный файл.

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

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