Извлечение файлов из папки res в исполняемом JAR-файле (если быть точным, в txt-файлы)

1

Я хотел бы спросить, можно ли положить текстовые файлы в мою банку, я использую их, чтобы сделать свою карту в своей игре, но пользователи могут получать рекорды. теперь я хочу сохранить рекорды с помощью карты, поэтому мне нужно сохранить карту на своем ПК. Есть ли способ, как я могу это сделать? Я искал в Интернете некоторые идеи, но я не мог найти ничего, что даже приблизилось к тому, что я хотел. У меня только 3/4-го года java, поэтому я мало знаю об этих вещах, все, что происходит за пределами отладки eclipse, является для меня проблемой (файлы в основном являются одной из этих вещей, исключениями и т.д.).

Главный вопрос сейчас.

Можно ли это сделать? Если да, есть ли у вас какие-либо условия, на которые я мог бы искать, или на некоторых сайтах/руководствах/учебниках? Если нет, есть ли другой способ, как я мог бы сохранить рекорды?

РЕДАКТИРОВАТЬ: сделать ясно

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

Приветствие Каролине

  • 0
    Я не думаю, что я понял ваш вопрос ясно. Ваш вопрос а) Как добавить текстовые файлы в банку или б) Прочитать из текстовых файлов, добавленных в банку. Я полагаю, вы хотите сделать оба? Проверьте файл Java Jar - как прочитать файл из файла Jar . Это должно дать вам некоторые выводы. Возможно, если это бесполезно, вы можете оставить комментарий.
  • 0
    у меня вопрос, могу ли я получить текстовый файл (текст внутри файла), который будет извлечен в другой файл, как домашний каталог моей игры (где я сохраняю настройки и прочее), основные карты находятся внутри файла jar, поэтому я хочу, чтобы они были извлечены при первом запуске программы
Теги:
jar

1 ответ

1
Лучший ответ

"извлеченный в другой файл, как домашний каталог моей игры (где я сохраняю настройки и прочее), основные карты находятся внутри файла jar, поэтому я хочу, чтобы они были извлечены при первом запуске программы"

Вы можете получить URL-адрес с помощью getClass().getResource()

URL url = getClass().getResource("/res/myfile.txt");

Затем создайте объект File из URI URL-адреса

File file = new File(url.toURI());

Затем просто выполните обычные операции с файлами.

if (file.renameTo(new File(System.getProperty("user.home") + "\\" + file.getName()))) {
    System.out.println("File is moved successful!");
} else {
    System.out.println("File is failed to move!");
}

Предполагая, что ваша файловая структура похожа на ниже, она должна работать нормально

ProjectRoot
         src
            res
               myfile.txt

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

InputStream is = getClass().getResourceAsStream("/res/myfile.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(is));

Просто выполняйте обычную операцию ввода-вывода с устройством reader. См. Здесь, чтобы помочь с написанием файла.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню