Чтение txt файла из определенного пакета Java - PullRequest
11 голосов
/ 06 декабря 2010

Я пытаюсь прочитать текстовый файл в определенном пакете, но он не может найти ответ. Я могу прочитать его, вставив абсолютный путь, но хочу прочитать его, не вставляя абсолютный путь.1002 *

Как мне поступить?

Спасибо

Ответы [ 4 ]

26 голосов
/ 06 декабря 2010

Вы можете использовать

InputStream in = 
   getClass().getResourceAsStream("/Utils/CEP/Ciades/" + estado + ".txt");
Reader fr = new InputStreamReader(in, "utf-8");

Несколько обозначений: не используйте заглавные буквы в именах пакетов;используйте английские имена ваших переменных.Это принятые практики и соглашения.

13 голосов
/ 29 мая 2014

Это может быть немного поздно, но это может помочь многим другим. Это способы доступа к ресурсам, доступным в проекте

Получение ресурсов из пакета по умолчанию

// Getting Resource as file object
File f = new File(getClass().getResource("/excludedir.properties").getFile());

// Getting resource as stream object
InputStream in = getClass().getResourceAsStream("/excludedir.properties");

Получение ресурсов из определенных пакетов

// Getting Resource as file object
File f = new File(getClass().getResource("/com/vivek/core/excludedir.properties").getFile());

// Getting resource as stream object
InputStream in = getClass().getResourceAsStream("/com/vivek/core/excludedir.properties");

Примечание: getclass () - это нестатическая функция, которую нельзя вызывать из статического контекста. Если вы хотите позвонить из статического контекста, используйте

YourClassName.class.getResource("/com/vivek/core/excludedir.properties").getFile()

Надеюсь, это поможет. Ура !!

5 голосов
/ 06 декабря 2010

Если текстовый файл существует в той же структуре, что и ваши файлы классов, тогда вам лучше подойдет использование getResourceAsStream.

http://download.oracle.com/javase/6/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String)

0 голосов
/ 06 декабря 2010

Для полной переносимости рассмотрите возможность использования File.separator вместо прямой косой черты, но да, getResourceAsStream должен работать. Имейте в виду, что если вы работаете в eclipse, ваши файлы классов, вероятно, будут в корзине по отношению к вашему рабочему каталогу, поэтому, если он находится только в папке вашего проекта, то способ, которым вы его используете, должен работать, но не getResourceAsStream. Кроме того, если ресурс, к которому вы хотите получить доступ, находится в исходной папке, он будет копироваться в корзину всякий раз, когда вы очищаете свой проект, так что getResourceAsStream будет работать.

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