2010-10-12 2 views
0

Я работаю с текстовыми файлами на Java. На Ubuntu 10.
Но у меня проблемы с дорожкой.Настройка каталога путей на чтение файлов

Пример:

saveFile("textFile.txt","abc");

Эта абстрактная функция в основном положить "ABC" на "TextFile.txt".

Я скомпилирую этот файл и создаю файл jar (используя NetBeans).
Когда я запустил приложение и позвонил saveFile("textFile.txt","abc"), textFile.txt сохранен в \ home. Я не хочу этого. Я хочу, чтобы textFile.txt перешел на pathDir внутри файла jar.

Как написать в этом файле, таким же образом?

ответ

1

При чтении ресурсов из JAR-файла вы не можете использовать API File. Вместо этого вы используете Class.getResourceAsStream(), как это:

reader = new InputStreamReader(MyClass.class.getResourceAsStream(
    "/apathdir/textFile.txt"), "UTF-8"); 

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

+0

Hei человек, спасибо. его решена моя проблема. – Richard

+0

Я хотел бы знать, как я могу писать в этом файле, так же? – Richard

+0

@Richard: вы вообще не можете писать в JAR-файл, с которого загружена ваша программа, поскольку она заблокирована ОС. –

0

Iwant знать, если имя_файла = «TextFile.txt», что путь реж этого файла?

Если вы используете только голые имена файлов (без указания каталога), JVM будет искать файл в текущем каталоге процесса JVM; обычно это каталог, в котором вы запускали JVM (исполняемый файл java).

Как сделать, чтобы установить /apathdir/textFile.txt ?. apathdir - это каталог , который находится внутри файла jar. Я попытался: fileName = "/apathdir/textFile.txt", но не работает.

Если вы хотите загрузить файл из JAR-файла, его нельзя загрузить с помощью FileReader. Вам необходимо использовать ClassLoader.getSystemResourceAsStream() (или Class.getResourceAsStream). См. эта статья для объяснения:

http://www.devx.com/tips/Tip/5697