Здравствуйте. Столкнулся с проблемой. Написал простенькую консольную игру. Сделал там топ-лист игроков. Саму таблицу сохраняю в TreeSet (где каждая строка - это объект со своими полями-столбцами таблицы). Потом я сериализую эту таблицу в файл. При запуске игры таблица игроков загружается из файл (происходит десериализация). Когда указываю такой путь:
"." + File.separator + "src" + File.separator + TopList.class.getPackage().getName().replace(".", File.separator) + File.separator + "TopListOfPlayers.dat";
то в ИДЕИ всё работает, но ничего не работает в jar-нике. Когда использую ресурс и делаю так:
private static final String fileTopList = File.separator +
TopList.class.getPackage().getName().replace(".", File.separator) +
File.separator + "TopListOfPlayers.dat";
private final URL urlFileTopList = getClass().getResource(fileTopList);
...
try (ObjectInputStream objectInput = new ObjectInputStream(urlFileTopList.openStream())) {
topList = (Set<TopListEntry>) objectInput.readObject();
}
То везде работает (и в джар-нике, и в ИДЕИ), но, если использовать загрузку ресурсов, то у меня в них не получается писать. Как можно решить эту проблему? Неужели только работой со внешним файлом (вне jar-ника)?