Ввод файлов в Java - PullRequest
       1

Ввод файлов в Java

0 голосов
/ 01 марта 2011

Я просто хочу добавить текст в JTextPane, и у меня появляется следующее Проблема:

Я использую класс файла для загрузки внешнего текстового файла:

File file = new File("/my/program/pics/mytext.txt");

но проблема в том, что я всегда получаю исключение FileNotFound! После небольшого исследования я понял, что только абсолютные пути к файлам работают, например, как "c: \ myfiles \ mytext.txt"

Что не так и как я могу заставить его загрузить файл, хранящийся в моем пакете? (это относительное положение)

Спасибо

Ответы [ 3 ]

3 голосов
/ 01 марта 2011

Чтобы получить ресурс classpath как InputStream, используйте Class#getResourceAsStream().

InputStream input = getClass().getResourceAsStream("/my/program/pics/mytext.txt");
2 голосов
/ 01 марта 2011

Если вы хотите загрузить ресурсы из вашего пути к классам (другими словами, изнутри структуры вашего пакета), вам придется использовать другую стратегию.

(Конечно, это все еще файл в вашей файловой системе, но когда ваше приложение распространяется, оно, скорее всего, не будет)

Ресурсы из пути к классам могут быть загружены с помощью загрузчика классов, например так:

InputStream stream = getClass().getResourceAsStream("/path/to/your/file/")

Этот путь начинается скорень вашего пути к классам / структура пакета.

0 голосов
/ 01 марта 2011

Вы должны заставить его работать с относительным путем.Вы должны рассматривать «начальную папку» как папку, в которой будет выполняться программа.Например, если вы запускаете его из Eclipse, начальной папкой будет корневая папка вашего проекта (та, которая содержит файл .project).

Например, если ваш файл находится в папке pics в корневой папке используйте этот код:

File file = new File("pics/mytext.txt"); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...