Как прочитать файл (например, txt файл) из другого пакета java с указанием абсолютного пути?

Я храню файлы без java в пакете. Я хочу читать файлы из этого пакета без указания абсолютного пути к файлу (например, C:\etc\etc...). Как мне это сделать?

Ответ 1

Используйте getResourceAsStream

Например:

MyClass.class.getResourceAsStream("file.txt");

Откроется file.txt, если он в том же пакете, что MyClass

также:

MyClass.class.getResourceAsStream("/com/foo/bar/file.txt");

Откроется file.txt на упаковке com.foo.bar

Удачи!:)

Ответ 2

Во-первых, убедитесь, что пакет, в котором содержатся ваши файлы, находится в вашем пути к классу приложений. Хотя вы не указали путь к файлам, вам все равно нужно получить пути к файлам для их чтения. Знаете ли вы имена всех ваших файлов и имена пакетов? Если это так, вы можете попробовать это, чтобы получить URL-адрес вашего файла:

public class Test {
    public static void main(String[] args) throws Exception {
        URL f = Test.class.getClassLoader().getResource("resources/Test.txt");
        System.out.println(f);
    }
}

приведенный выше код получает URL-адрес файла Test.txt в другом пакете с именем "resources".