Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
29 / 24 / 5
Регистрация: 15.10.2019
Сообщений: 268

jar, libgdx Когда в приложении происходит запись в файл, приложение крашится

22.12.2023, 19:48. Показов 1023. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я не понимаю, что не так...
Вот класс, где я работаю с файлами
Собираю jar через команду
Code
1
./gradlew desktop:dist
Все асеты (картинки, модельки, звуки), все считывает, а запись в файл не делает

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package com.deeep.spaceglad;
 
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
 
import java.io.IOException;
import java.util.Arrays;
import java.util.Comparator;
 
public class FilesCore {
 
    static private final int MAX_SCORES = 5;
    static private final String FILE_NAME = "writtenScores.txt";
 
    static public void sendScore(int score) {
        System.out.println("ya tut v file " + score);
        String[] scores = readScoresFromFile();
        System.out.println(Arrays.toString(scores));
        scores = updateScores(scores, score);
        writeScoresToFile(scores);
    }
 
    public static String[] readScoresFromFile() {
        String[] scores = new String[MAX_SCORES];
 
 
        FileHandle fileHandle = Gdx.files.local(FILE_NAME);
        if (!fileHandle.exists()) {
            return scores;
        }
 
        try {
            String[] lines = fileHandle.readString().split("\\r?\\n");
            System.arraycopy(lines, 0, scores, 0, Math.min(lines.length, MAX_SCORES));
        } catch (Exception e) {
            e.printStackTrace();
        }
 
        return scores;
    }
 
    static private String[] updateScores(String[] scores, int newScore) {
 
        int number = Integer.parseInt(scores[MAX_SCORES - 1]);
        if (newScore <= number) {
            return scores;
        }
        scores[MAX_SCORES - 1] = String.valueOf(newScore);
        Arrays.sort(scores, new Comparator<String>() {
            @Override
            public int compare(String s1, String s2) {
                if (s1 == null || s2 == null) return 0;
                return Integer.compare(Integer.parseInt(s2), Integer.parseInt(s1));
            }
        });
 
        return scores;
    }
 
    static private void writeScoresToFile(String[] scores) {
        FileHandle fileHandle = Gdx.files.local(FILE_NAME);
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < Math.min(MAX_SCORES, scores.length); i++) {
            if (scores[i] != null) {
                stringBuilder.append(scores[i]).append("\n");
            }
        }
 
        try {
            fileHandle.writeString(stringBuilder.toString(), false);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
 
}
Добавлено через 12 минут
Я смог отдебажить jar файл
Java
1
int number = Integer.parseInt(scores[MAX_SCORES - 1]);
Вот здесь он ругался, что у меня могут быть null значения в списке
Поэтому я просто заполнил строками его
Java
1
2
String[] scores = new String[MAX_SCORES];
        Arrays.fill(scores, "0");
Теперь все хорошо)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.12.2023, 19:48
Ответы с готовыми решениями:

BufferedReader.readLine. Не читает первые 2 символа, когда в файл происходит запись
Пытаюсь читать из текстового файла логи, для этого создал класс-потомок класса Thread и переопределил метод Run(). Если файл никто не...

Ini-файл: чтение происходит без проблем, но запись в файл не происходит, почему?
Пытаюсь научиться работать с ini файлам, чтение происходит без проблем но запись в файл не происходит, пишу на win7? почему та, всё же...

Когда конвертирую файл jar в exe в программе launch4j он на выходе выдает файл xml
Когда конвертирую файл jar в exe в прогe launch4j он на выходе выдает файл xml что делать?

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.12.2023, 19:48
Помогаю со студенческими работами здесь

Как открыть файл .cfg из файла .jar (Java приложение)
Нужно открыть файл из игры BattleShip Bt. HEX-редактор не открывает его.

В приложении Silverlight не дописывает несколько символов в файл, когда зашифровал
ttp://************.com/files/6cgfn4xtz - в у меня здесь есть два проекта: один реализует шифровку данных в консольном режиме, а другой ту...

Можно ли jar файл установить на стороннем сервере,если приложение написано на Spring boot?
Всем привет! Может быть я неправильно задал вопрос,но постараюсь тут донести свою мысль. Как мне известно Spring boot предоставляет набор...

Не происходит запись в файл
Доброе время суток! Задача такая надо записать весь перебор 7ми цифр в файл.txt Вроде код правильный,но не записывает. ...

Не происходит запись в файл
первая программа,которая из 64 сс переводит в 2сс,все работает,после этого по желаению юзера,записывает результат в текстовоя файл,что и не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru