/
AnatoliyMatveev
/
DZ-Donload
Обзор
Документация
Войти
/
AnatoliyMatveev
/
DZ-Donload
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Main.java
64 строки
3 KB
AnatoliyMatveev
Create: GameProgress.java, Main.java
16 июл 2026, 08:53
Верифицирован
16 июл 2026, 08:53
9cd10a8
Код
Авторство
О чём код?
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public class Main { public static void main(String[] args) { // Примеры путей для запуска String zipPath = "/D:Games/GunRunner/savegames/zip.zip"; String extractFolder = "/D:Games/GunRunner/savegames/"; String saveFilePath = "/D:Games/GunRunner/savegames/save2.dat"; //Распаковка архива openZip(zipPath, extractFolder); //Десериализация файла сохраненной игры GameProgress gameProgress = openProgress(saveFilePath); //Вывод состояния игры в консоль if (gameProgress != null) { System.out.println(gameProgress); } } // Метод распаковки ZIP-архива public static void openZip(String zipPath, String extractFolderPath) { try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipPath))) { ZipEntry entry; // Поочередно считываем элементы архива while ((entry = zis.getNextEntry()) != null) { // Формируем полный путь к распаковываемому файлу String filePath = extractFolderPath + "/" + entry.getName(); // Записываем распакованный файл на диск try (FileOutputStream fos = new FileOutputStream(filePath)) { byte[] buffer = new byte[1024]; int length; while ((length = zis.read(buffer)) >= 0) { fos.write(buffer, 0, length); } fos.flush(); } // Закрываем текущую запись в архиве перед переходом к следующей zis.closeEntry(); } } catch (Exception e) { System.out.println("Ошибка при распаковке архива: " + e.getMessage()); } } // Метод десериализации файла сохраненной игры public static GameProgress openProgress(String savePath) { try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(savePath))) { // Считываем объект и кастим его к типу GameProgress return (GameProgress) ois.readObject(); } catch (Exception e) { System.out.println("Ошибка при десериализации файла: " + e.getMessage()); return null; } } }