Я хотел бы спросить, можно ли положить текстовые файлы в мою банку, я использую их, чтобы сделать свою карту в своей игре, но пользователи могут получать рекорды. теперь я хочу сохранить рекорды с помощью карты, поэтому мне нужно сохранить карту на своем ПК. Есть ли способ, как я могу это сделать? Я искал в Интернете некоторые идеи, но я не мог найти ничего, что даже приблизилось к тому, что я хотел. У меня только 3/4-го года java, поэтому я мало знаю об этих вещах, все, что происходит за пределами отладки eclipse, является для меня проблемой (файлы в основном являются одной из этих вещей, исключениями и т.д.).
Главный вопрос сейчас.
Можно ли это сделать? Если да, есть ли у вас какие-либо условия, на которые я мог бы искать, или на некоторых сайтах/руководствах/учебниках? Если нет, есть ли другой способ, как я мог бы сохранить рекорды?
РЕДАКТИРОВАТЬ: сделать ясно
Могу ли я получить текстовый файл (текст внутри файла), который будет извлечен в другой файл, как домашний каталог моей игры (где я сохраняю настройки и прочее), основные карты находятся внутри файла jar, поэтому я хочу их быть извлеченным при первом запуске программы
Приветствие Каролине
"извлеченный в другой файл, как домашний каталог моей игры (где я сохраняю настройки и прочее), основные карты находятся внутри файла 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
. См. Здесь, чтобы помочь с написанием файла.